Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.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/1/ssh/2.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 如何避免Can';t大量分配控制器发出的受保护属性_Ruby On Rails_Mass Assignment - Fatal编程技术网

Ruby on rails 如何避免Can';t大量分配控制器发出的受保护属性

Ruby on rails 如何避免Can';t大量分配控制器发出的受保护属性,ruby-on-rails,mass-assignment,Ruby On Rails,Mass Assignment,比方说,我有两个应用程序使用相同的数据库(app),我有一个字段说:cool,所以我想在第一个应用程序中使用这个字段,但在第二个应用程序中不使用。因此,如何避免此错误如果不使用数据库(应用程序)中可访问的属性,则无法批量分配受保护的属性。我不确定是否理解,但我通常会这样做: protected_attribute = params[:blog_post].delete(:protected_attribute) @blog_post = BlogPost.new(params[:blog_po

比方说,我有两个应用程序使用相同的数据库(app),我有一个字段说:cool,所以我想在第一个应用程序中使用这个字段,但在第二个应用程序中不使用。因此,如何避免此错误如果不使用数据库(应用程序)中可访问的属性,则无法批量分配受保护的属性

我不确定是否理解,但我通常会这样做:

protected_attribute = params[:blog_post].delete(:protected_attribute)

@blog_post = BlogPost.new(params[:blog_post])
@blog_post.protected_attribute = protected_attribute
if @blog_post.save
  # ...
else
  # ...
end
这很难看,但是避开了大众的保护


更新:您还必须从参数中删除受保护的属性。

对,您还必须从参数中删除该属性。我已经更新了我的答案以反映这些变化。