Quero ter uma form_for @user
, mas postar em uma ação personalizada no controlador de usuários.
Como posso fazer isso?
ruby-on-rails
Blankman
fonte
fonte
url_for
necessário. Também desde que o controlador é o mesmo, você pode usarform_for @user, :url => :action => 'myaction'
O seguinte funciona para mim:
fonte
action:
( dois pontos de ação ) api.rubyonrails.org/classes/ActionView/Helpers/…form_for @user, url: {action: 'myaction'}
mas isso me dáNo route matches {:action=>"myaction", :controller=>"users"}
erro.resources :users do
collection do
get :myaction
end
end
Eu fiz assim
Observe o parâmetro opcional
id
definido como atributo do ID da instância do usuário.fonte
Como alternativa, o mesmo pode ser alcançado usando
form_tag
a sintaxe:Conforme descrito em http://guides.rubyonrails.org/form_helpers.html#multiple-hashes-in-form-helper-calls
fonte
@user
. Usar aform_tag
não vinculará os atributos do objeto aos campos do formulário.Se você deseja passar o Controller personalizado para um form_for ao renderizar um formulário parcial, você pode usar isto:
e, em seguida, no formato parcial, use esta variável local como esta:
fonte
nova sintaxe
fonte