质量分配问题Rails 3

时间:2013-07-26 03:32:53

标签: ruby-on-rails ruby mass-assignment

我在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

1 个答案:

答案 0 :(得分:1)

这是关于一般调试的提示 - 为了好奇,你也可以看一下params目前的用途或使用pry

def import
  raise StandardError, params.inspect
end

我还建议您使用强参数,我在我的博客上详细介绍了一些有用的方法:Bootstrapping Strong Parameters in Rails