Ruby on Rails: вопрос о форме и переключателе - PullRequest
0 голосов
/ 06 сентября 2010

У меня есть форма вокруг списка предметов.Я хотел бы отметить переключатель в списке, а затем, нажав «Отправить», перейти на страницу «Изменить» выбранного элемента.

Проблема заключается в том, что если я пишу что-то вроде

<%= form_tag edit_item_path %>

но Rails жалуется, что я не предоставил правильный id, который, в свою очередь, устанавливается на моих переключателях следующим образом:

<%= radio_button 'item', 'id', item.id %>

Итак - как бы яотправить форму с выбранным идентификатором для данного действия?

1 Ответ

1 голос
/ 06 сентября 2010

Делать так, как вы описываете, не будет работать, так как edit_item_path по умолчанию для определения пути RESTful является GET-запросом. Вы пытаетесь сделать это POST-запросом. Если вы хотите придерживаться RESTful-способа ведения дел, я бы порекомендовал просто перебирать свои элементы и предоставлять ссылки для редактирования, поскольку вы все равно планируете редактировать их по одному. В противном случае вам придется определить новый маршрут, если вы предпочитаете выполнять действия в форме с помощью переключателей. Если да, то вы бы добавили что-то подобное в ваш config / rout.rb: (при условии, что вы используете rails 2.3.x)


map.resources :items, :member =>{:edit_radio_form => :post}

Чем ваша форма будет выглядеть так: <%= form_tag edit_radio_form_item_path do |form| %> И это должно сработать, но это не правильный способ сделать что-то по нескольким причинам, наиболее раздражающим из которых является то, что вы не получите полный URL на странице редактирования, потому что попали туда с запросом POST, так что если вы обновите страницу, ваш идентификатор элемента исчезнет и выдаст ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...