J'essaye d'obtenir des actions comme taggable sur setup pour fonctionner avec mon application Rails 5.Rails 5 - Agit comme Taggable On - paramètres non autorisés pour une liste de tags spécifique
J'ai un modèle appelé Randd :: Field.rb, qui a un attribut appelé: title. Je veux utiliser ces titres comme balises pour mon modèle de proposition.
Mon Proposal.rb a:
classe Proposition < ApplicationRecord comprennent Statesman :: Adaptateurs :: ActiveRecordQueries
acts_as_taggable
acts_as_taggable_on :randd_maturities, :randd_fields, :randd_purposes, :randd_activities
Ma proposition a form.html.erb:
<%= f.collection_select :randd_field_list, Randd::Field.order(:title), :id, :title, {}, {multiple: true} %>
Mon contrôleur de proposition liste les randd_field_list avec:
def proposal_params
params.require(:proposal).permit(:title, :randd_maturities_list, :randd_field_list, :randd_purposes_list, :randd_activities_list)
Lorsque je sauvegarde tout cela et que j'essaie d'ajouter un tag à une proposition, j'obtiens une erreur. Le journal du serveur indique:
Unpermitted parameter: randd_field_list
Cela n'a pas de sens parce que son problème qui se pose lorsque l'attribut est pas dans les params liste blanche autorisées - que je l'ai fait.
Quelqu'un peut-il voir ce qui doit être fait pour sauvegarder des étiquettes via le formulaire de proposition?
Je trouve la documentation de pierres précieuses confusion car il montre:
Configuration
classe utilisateur < ActiveRecord :: Base acts_as_taggable # Alias pour acts_as_taggable_on: balises acts_as_taggable_on: compétences,: intérêts fin
classe UsersController < ApplicationController def user_params params.require (: user) .permit (: nom,: liste_tags) ## Rail s 4 paramètres forts utilisation end end
Pourquoi les paramètres autorisés ne comprennent-ils pas: skill_list et un: interest_list étant donné que ces modèles spécifiques sont utilisés comme balises? Suis-je censé ajouter « liste_balise » à ma proposition Admet params même lorsque les seules balises qui peuvent être ajoutés sont des titres définis dans les modèles spécifiques que j'ai énumérés dans:
acts_as_taggable_on :randd_maturities, :randd_fields, :randd_purposes, :randd_activities
Le journal du serveur montre:
ActsAsTaggableOn::Tagging Load (1.6ms) SELECT "taggings".* FROM "taggings" WHERE "taggings"."taggable_id" = $1 AND "taggings"."taggable_type" = $2 [["taggable_id", 17], ["taggable_type", "Proposal"]]
ActsAsTaggableOn::Tag Load (1.7ms) SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."taggable_id" = $1 AND "taggings"."taggable_type" = $2 AND (taggings.context = 'randd_fields' AND taggings.tagger_id IS NULL) [["taggable_id", 17], ["taggable_type", "Proposal"]]
ActsAsTaggableOn::Tagging Load (2.8ms) SELECT "taggings".* FROM "taggings" WHERE "taggings"."taggable_id" = $1 AND "taggings"."taggable_type" = $2 [["taggable_id", 17], ["taggable_type", "Proposal"]]
ActsAsTaggableOn::Tag Load (3.0ms) SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."taggable_id" = $1 AND "taggings"."taggable_type" = $2 AND (taggings.context = 'randd_fields' AND taggings.tagger_id IS NULL) [["taggable_id", 17], ["taggable_type", "Proposal"]]
Randd::Field Load (1.6ms) SELECT "randd_fields".* FROM "randd_fields" ORDER BY "randd_fields"."title" ASC
Processing by ProposalsController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"BF7l9/0QTVN3A==", "proposal"=>{"title"=>"asdf", "byline"=>"asdf", , "randd_field_list"=>["", "1"],
Unpermitted parameter: randd_field_list
affichez votre journal pour cette demande, en particulier les paramètres entrants. Dans la documentation est utilisé: tag_list car: tags est par défaut pour 'acts_as_taggable_on'. Ils devraient aussi ajouter: skill_list dans cet exemple. –
@AlexKojin - J'ai ajouté les extraits du journal du serveur – Mel