2012-05-02 4 views
14

У меня есть модель «Статья» и модель «Рейтинги», вложенные в статьи.Rails change routing submit in form_for

/статьи/123/рейтинги

Я хочу изменить маршрутизацию f.submit в рейтингах/_form.html.erb теперь так, что после нажатия кнопки отправить, мои приложения для маршрутов

/рейтинги/111

, но я хочу, чтобы маршрут его

/статьи/123

Как я могу изменить маршрут в форме для кнопки f.submit. я нашел здесь что-то вроде этого:

<% form_for :thing, :url => 
url_for(:action => "update", :id => @thing) do |f| %> 

Но это не работает для моих рельсов 3.2. Благодарим за помощь,

+0

Вы забыли добавить '=' после '<%'. К сожалению, я не понял, на каком контроллере и действии вы хотите отправить форму. –

ответ

19

: url - URL, на который отправлена ​​форма. Он принимает те же поля, которые вы передаете url_for или link_to. В частности, вы можете передать здесь именованный маршрут напрямую. По умолчанию выполняется текущее действие.

<% form_for :thing, :url => {:action => "update", :id => @thing} do |f| %> 

вы также можете передать ему имя пути с помощью помощника. так что вы также можете сделать что-то вроде

:url => update_article_path(@article) 
+0

Нет, это не работает для меня >> form_for (@rating),: url => (: action => "show",: id => @article) do | f | >> Ошибка, которую я получаю, это >> синтаксическая ошибка, неожиданный tASSOC, ожидающий keyword_end ... nd = – Lailo

+0

Я отредактировал проверку ответа сейчас – Abid

3

Попробуйте form_for (:thing, url:{:controller=>'thing', :action=>'update'}, html:{method:'put'}).