Je veux avoir un form_for @user
, mais publier sur une action personnalisée dans le contrôleur des utilisateurs.
Comment puis-je faire ceci?
ruby-on-rails
Blankman
la source
la source
url_for
soit nécessaire. De plus, comme le contrôleur est le même, vous pouvez utiliserform_for @user, :url => :action => 'myaction'
Ce qui suit fonctionne pour moi:
la source
action:
( action colon ) api.rubyonrails.org/classes/ActionView/Helpers/…form_for @user, url: {action: 'myaction'}
mais ça me donne uneNo route matches {:action=>"myaction", :controller=>"users"}
erreur.resources :users do
collection do
get :myaction
end
end
Je l'ai fait comme ça
Notez le paramètre facultatif
id
défini sur l'attribut d'ID d'instance utilisateur.la source
Alternativement, la même chose peut être atteinte en utilisant
form_tag
la syntaxe:Comme décrit dans http://guides.rubyonrails.org/form_helpers.html#multiple-hashes-in-form-helper-calls
la source
@user
. L'utilisation de aform_tag
ne liera pas les attributs de l'objet aux champs du formulaire.Si vous souhaitez passer un contrôleur personnalisé à un form_for lors du rendu d'un formulaire partiel, vous pouvez utiliser ceci:
puis sous la forme partielle, utilisez cette variable locale comme ceci:
la source
nouvelle syntaxe
la source