我在SO上搜索了这个答案但还没找到。我收到此错误:无法批量分配受保护的属性:品牌,详细信息,产品,代码
我正在将csv数据从文件上传到我的rails db中。以下是上传页面控制器的导入操作:
def import
Item.import(params[:file])
redirect_to root_url, notice: "Products imported."
end
Item model中的attr_accessible行:
attr_accessible :brand, :details, :img, :product, :code
我正在使用Devise,不确定这是否是问题的一部分?我是否需要在我的用户模型中执行某些操作才能使其正常工作?提前谢谢。
这是Item:
中的self.import方法 def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
Item.create! row.to_hash
end
end
答案 0 :(得分:1)
这是关于一般调试的提示 - 为了好奇,你也可以看一下params
目前的用途或使用pry
def import
raise StandardError, params.inspect
end
我还建议您使用强参数,我在我的博客上详细介绍了一些有用的方法:Bootstrapping Strong Parameters in Rails。