Ceci est mon premier projet Rails 6. Coincé à ce sujet. Tout avis sera le bienvenu.
J'ai un formulaire sur index.html.erb p> avec un contrôleur p> i obtenir ceci Rails.application.routes.draw do
resources :volunteer_submissions
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
get 'volunteers', to: 'volunteer_submissions#index'
root to: 'pages#home'
end
3 Réponses :
Le formulaire doit ressembler à ce <% = form_with (modèle: article, local: true) faire | Formulaire | %> code> dans modèle: élément code> Vous devez mettre le nom de votre fichier modèle RB situé dans app / modèles code>
Dans mon cas, son app / modèles / items.rb code>
Donc, ma forme est <% = form_with (modèle: article, local: true) faire | Formulaire | %> code> p>
Ajouté 'local: vrai' ... et il distingue toujours les paramètres manquants. Et si je vous comprends ... oui, mon modèle est App / Modèles / Volunteer_submission.rb So @volunteer_submission.
Je crois que votre problème est le fait que vous envoyez vos paramètres sans une touche code> Volunteer_submission Code>.
basé sur cette méthode p>
def volunteer_submission_params
params.require(:volunteer_submission).permit(:email, :first_name, :last_name)
end
Avoir du sens. Comment puis-je envoyer cette clé?
Résolu en utilisant la possibilité d'envoyer le volontaire_submission. <% = Form_with Scope :: Volunteer_submission, local: True Do | Formulaire | %>
FWIW Si vous utilisez Param Wrapper (que je pense est activée par défaut dans les rails), il doit automatiquement envelopper vos touches dans la clé Volunteer_submission.
Pour moi, j'avais ce problème parce que j'avais l'aide d'une entrée HTML à l'intérieur du formulaire Rails et passait au nom de la valeur sans le nom de modèle.
{"authenticity_token"=>"....", "order_items"=>{":weight_in_oz"=>"16"}, "commit"=>"Add To Cart", "controller"=>"order_items", "action"=>"create"} permitted: false>