themaモデルを登録する際に、themaを構成するsort_objectのidを動的に入れるように組んでいます。
fields_forを使用して双方の中間テーブルであるsort_object_themasに登録させようとしています。
その際のデータベース保存ができません。
unpermitted parameterの影響か、
sort_object_themaモデルにthema_idは入るのですが、sort_object_idが入りません。
hidden fieldに配列で値を入れていることは何か影響があるのでしょうか?
配列でパラメータが送信できてるので問題なさそうですが、
やりたいことをタイトルに書かせていただいております。
下記のソースから、何かヒントをご教示いただけませんでしょうか。
よろしくお願いします。
Processing by Front::ThemasController#create as HTML Parameters: {"authenticity_token"=>"hZsZlExd/95LIjFpLR8RJrtJt0BE3ZwA2eA5ZTvfTpEw6G8elH43FYzvELOYe6aGlsNx0Qv3hQF+V/2uYt4KFg==", "thema"=>{"title"=>"a", "detail"=>"a", "sort_object_themas_attributes"=>{"0"=>{"sort_object_id"=>["2"]}}}, "commit"=>"Create Thema"} Unpermitted parameter: :sort_object_id (0.5ms) BEGIN ↳ app/controllers/front/themas_controller.rb:9:in `create' Thema Create (2.5ms) INSERT INTO `themas` (`title`, `detail`) VALUES ('a', 'a') ↳ app/controllers/front/themas_controller.rb:9:in `create' SortObjectThema Create (1.4ms) INSERT INTO `sort_object_themas` (`thema_id`) VALUES (67) ↳ app/controllers/front/themas_controller.rb:9:in `create' (5.8ms) COMMIT ↳ app/controllers/front/themas_controller.rb:9:in `create' No template found for Front::ThemasController#create, rendering head :no_content Completed 204 No Content in 75ms (ActiveRecord: 10.2ms | Allocations: 4291)
view
1 = form_for @thema do |f| 2 = f.label :title 3 = f.text_field :title 4 = f.label :detail 5 = f.text_area :detail 6 = f.label :category_id 7 = f.fields_for :sort_object_themas do |sot| 8 = sot.hidden_field :sort_object_id, multiple: true #valueにはjsで配列の値を挿入 9 = f.submit
controller
1class Front::ThemasController < ApplicationController 2 def new 3 @thema = Thema.new 4 @thema.sort_object_themas.build 5 end 6 7 def create 8 @thema = Thema.new(thema_parameter) 9 @thema.save 10 # redirect_to new_sort_object_path 11 end 12 13 private 14 def thema_parameter 15 params.require(:thema).permit(:title, :detail, :category_id, sort_object_themas_attributes: [:sort_pbject_id]) 16 end 17end
Thema
1class Thema < ActiveRecord::Base 2 belongs_to :category, optional: true 3 has_many :sort_object_themas 4 has_many :sort_objects, through: :sort_object_themas 5 accepts_nested_attributes_for :sort_object_themas 6end
SortObjectThema
1class SortObjectThema < ApplicationRecord 2 belongs_to :sort_object, optional: true 3 belongs_to :thema, optional: true 4end
SortObject
1class SortObject < ActiveRecord::Base 2 has_many :sort_object_themas 3 has_many :themas, through: :sort_object_themas 4end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。