Направляющие redirect_to отправляют метод?

.replace() возвращает новую строку (она не изменяет существующую строку), поэтому вам потребуется:

answer_form = answer_form.replace(/#/g, question_num); 

Вы, вероятно, также должны сделать question_num строкой, хотя автоматические преобразования типов, вероятно, справятся с этим. для вас.

Рабочий пример: http://jsfiddle.net/jfriend00/4cAz5/

К вашему сведению, в Javascript строки являются неизменяемыми - существующая строка никогда не изменяется. Таким образом, любой метод, который вносит изменения в строку (например, concat, replace, slice, substr, substring, toLowerCase, toUpperCase и т. Д.) ВСЕГДА возвращает новую строку .

12
задан 15 June 2009 в 21:10
поделиться

2 ответа

Похоже, вы запутались в том, как работает маршрутизация Rails. Этот код:

redirect_to :controller=>'groups',:action=>'invite',:group_id=>@group_member.group_id

создает URL-адрес, который выглядит примерно так / groups / Invite? Group_id = 1 .

Без сопоставления в вашем routes.rb маршрутизатор Rails сопоставляет это действие показать , а не пригласить . Часть приглашения URL-адреса отображается в params [: id] , и когда он пытается найти эту запись в базе данных, он терпит неудачу, и вы получаете сообщение, которое вы нашли.

] Если вы используете маршруты RESTful, у вас уже есть строка map.resources , которая выглядит следующим образом:

map.resources :groups

Вам нужно добавить настраиваемое действие для приглашения :

map.resources :groups, :member => { :invite => :get }

Затем измените ссылку на params [: group_id] в методе #invite , чтобы использовать только params [: id] .

9
ответ дан 2 December 2019 в 03:06
поделиться

Ответ заключается в том, что вы не можете выполнить POST, используя redirect_to .

Это связано с тем, что redirect_to просто отправляет в браузер заголовок перенаправления HTTP 30x, который, в свою очередь, ПОЛУЧАЕТ целевой URL, а браузеры выполняют только GET при перенаправлениях

36
ответ дан 2 December 2019 в 03:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: