Chcę mieć form_for @user
, ale publikować w akcji niestandardowej w kontrolerze użytkowników.
W jaki sposób mogę to zrobić?
ruby-on-rails
Blankman
źródło
źródło
url_for
jest to konieczne. Ponieważ kontroler jest taki sam, możesz użyćform_for @user, :url => :action => 'myaction'
U mnie działa:
źródło
action:
( dwukropek akcji ) api.rubyonrails.org/classes/ActionView/Helpers/ ...form_for @user, url: {action: 'myaction'}
ale daje mi toNo route matches {:action=>"myaction", :controller=>"users"}
błąd.resources :users do
collection do
get :myaction
end
end
Zrobiłem to w ten sposób
Zwróć uwagę na opcjonalny parametr
id
ustawiony na atrybut id instancji użytkownika.źródło
Alternatywnie można osiągnąć to samo, używając
form_tag
składni:Jak opisano w http://guides.rubyonrails.org/form_helpers.html#multiple-hashes-in-form-helper-calls
źródło
@user
. Użycie aform_tag
nie spowoduje powiązania atrybutów obiektu z polami formularza.Jeśli chcesz przekazać niestandardowy kontroler do form_for podczas renderowania częściowego formularza, możesz użyć tego:
a następnie w formie częściowej użyj tej zmiennej lokalnej w ten sposób:
źródło
nowa składnia
źródło