Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 以嵌套形式接受来自复选框的数据,并使用来自复选框的数据创建记录_Ruby On Rails_Ruby_Nested Forms_Strong Parameters - Fatal编程技术网

Ruby on rails 以嵌套形式接受来自复选框的数据,并使用来自复选框的数据创建记录

Ruby on rails 以嵌套形式接受来自复选框的数据,并使用来自复选框的数据创建记录,ruby-on-rails,ruby,nested-forms,strong-parameters,Ruby On Rails,Ruby,Nested Forms,Strong Parameters,我有一个产品类,产品对零个或多个角色可见。因此,我创建了一个名为content_roles的多态模型,它存储角色的id和content_id,即产品id或事件id,以及content_typeproduct、事件等 我使用嵌套的表单gem接受角色id,使用复选框将产品和角色关系存储在content\u role中 我面临的问题是我无法创建内容和角色记录。在我的日志中,我得到了不允许的参数:role\u id 参数:{utf8=>✓, 真实性\u令牌=>XXXXXXXXXXXXXXXXXXXXX

我有一个产品类,产品对零个或多个角色可见。因此,我创建了一个名为content_roles的多态模型,它存储角色的id和content_id,即产品id或事件id,以及content_typeproduct、事件等

我使用嵌套的表单gem接受角色id,使用复选框将产品和角色关系存储在content\u role中

我面临的问题是我无法创建内容和角色记录。在我的日志中,我得到了不允许的参数:role\u id

参数:{utf8=>✓, 真实性\u令牌=>XXXXXXXXXXXXXXXXXXXXX DLH99ZWLRF8DGT3GCBOPS=,产品=>{product\u name=>一些产品,产品描述=>一些产品描述,内容角色属性=>{role\u id=>[1,2,]},提交=>创建产品}

在我看来,我已经写了

 = f.simple_fields_for :content_roles_attributes do |role|
  = role.input :role_id,label: "visible to", as: :check_boxes,label: "Role",collection: Role.all,:required=>true
控制器允许的参数如下所示

def product_params
 params.require(:product).permit(:product_description,:product_name,
 content_roles_attributes:  [:role_id,:id],
 multimedia_attributes:[:asset,:_destroy,:id])
end
 class Product     
  has_many :content_roles, as: :content
  has_many :multimedia ,as: :storable
  # Nested attributes
  accepts_nested_attributes_for :multimedia
  accepts_nested_attributes_for :content_roles
 end
产品模型看起来像

def product_params
 params.require(:product).permit(:product_description,:product_name,
 content_roles_attributes:  [:role_id,:id],
 multimedia_attributes:[:asset,:_destroy,:id])
end
 class Product     
  has_many :content_roles, as: :content
  has_many :multimedia ,as: :storable
  # Nested attributes
  accepts_nested_attributes_for :multimedia
  accepts_nested_attributes_for :content_roles
 end
这就是内容和角色模型

class ContentRole < ActiveRecord::Base
 belongs_to :content, polymorphic: true
 belongs_to :role
 belongs_to :news
 belongs_to :product
end
尝试将产品参数更改为:


正如我建议的那样,我尝试将role_id设置为数组,它给了我一个TypeError,没有将字符串隐式转换为整数。任何关于如何解决该问题的建议???@Adil-这现在是另一个问题,您需要使用准确的错误消息以及回溯和最有可能的控制器操作相关代码来更新当前问题