Как установить действие с помощью form_for?

Я создал новую страницу на существующем контроллере.

Я добавил 2 метода действия на контроллере: prompt_user и process_feedback.

Итак, я попадаю на страницу через

redirect_to :controller => :users, :action => :prompt_user

И код form_for выглядит так

<% form_for :user, @user do |f| %>

Что генерирует следующий html

<form action="users/prompt_user" method="post">

Обратите внимание, что действие — prompt_user, а я хочу установить для него значение process_feedback. Я думал, что могу изменить действие с помощью кнопки

<%= submit_tag "Process feedback" %>

Но это не сработало.

Итак, мой вопрос: как я могу изменить действие на process_feedback?

Кроме того, как вы, вероятно, заметили, я очень новичок в рельсах, поэтому, если я делаю что-то особенно тупое, я хотел бы узнать, что это такое.


person Timid Developer    schedule 12.08.2011    source источник


Ответы (2)


Это по памяти, но я думаю, что вы можете сделать что-то вроде этого:

form_for :user, @user, :url => { :action => :prompt_user } do |f|
person jonnii    schedule 12.08.2011
comment
Это то, что я ищу. Спасибо большое. - person Timid Developer; 12.08.2011
comment
Кстати, все это доступно в документации по рельсам (api.rubyonrails.org/classes /ActionView/Helpers/FormHelper.html). - person jonnii; 12.08.2011

Альтернативно того же можно достичь, используя form_tag с синтаксисом:

См. мой ответ на этот вопрос: здесь https://stackoverflow.com/a/37145293/1248725

person juliangonzalez    schedule 10.05.2016