Rails 5 앱에서 작동하도록 설치시 taggable 역할을 얻으려고합니다.Rails 5 - Taggable으로 작동 On - 특정 태그 목록에 대해 허용되지 않은 매개 변수
Randd :: Field.rb라는 모델에 title이라는 속성이 있습니다. 이 제목을 제안 모델의 태그로 사용하고 싶습니다.
내 Proposal.rb가 있습니다
클래스 제안 < ApplicationRecord 이 정치 :: 어댑터 :: ActiveRecordQueries을 포함
acts_as_taggable
acts_as_taggable_on :randd_maturities, :randd_fields, :randd_purposes, :randd_activities
내 제안 form.html.erb가 있습니다
<%= f.collection_select :randd_field_list, Randd::Field.order(:title), :id, :title, {}, {multiple: true} %>
내 제안 컨트롤러는 randd_field_list를 다음과 함께 화이트리스트합니다 :
def proposal_params
params.require(:proposal).permit(:title, :randd_maturities_list, :randd_field_list, :randd_purposes_list, :randd_activities_list)
이 모든 것을 저장하고 제안서에 태그를 추가하려고하면 오류가 발생합니다. 서버 로그를 보여줍니다
Unpermitted parameter: randd_field_list
이 어떤 이해가되지 않습니다 그 때문에 속성이 허용 PARAMS에 화이트리스트되지 않을 때 온다 문제 - 내가 했어요.
누구나 제안서 양식을 통해 태그를 저장하기 위해 수행해야 할 작업을 볼 수 있습니까?
설정
클래스 사용자 < 액티브 :: 자료 acts_as_taggable # 별칭 acts_as_taggable_on을 위해 :
나는 그것을 보여주기 때문에 보석 문서는 혼란 찾을 태그 acts_as_taggable_on : 기술 : 관심 끝을
클래스 UsersController < ApplicationController def user_params params.require (: user) .permit (: name, : tag_list) ## 레일 s 4 개의 강력한 매개 변수 사용 끝 지정
허용되는 매개 변수에는 해당 특정 모델이 태그로 사용된다는 이유로 skill_list 및 an : interest_list가 포함되지 않는 이유는 무엇입니까? 나는 params를 특정 모델에 정의 된 제목에서 I에 나열된 한 추가 할 수있는 유일한 태그 경우에도 허용 된 내 제안에 "tag_list"을 추가하기로되어 있습니까 :
acts_as_taggable_on :randd_maturities, :randd_fields, :randd_purposes, :randd_activities
서버 로그를 보여줍니다
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
로그를 추가하십시오. 문서가 사용되었습니다 : tag_list because : tags는'acts_as_taggable_on'에 대해 기본값입니다. 그들은 또한 그 예에 skill_list를 추가해야합니다. –
@AlexKojin - 서버 로그 추출물을 추가했습니다 – Mel