heroku rails console seed无法批量分配受保护的属性MassAssignment错误

时间:2014-03-12 21:05:19

标签: ruby-on-rails sqlite postgresql heroku ruby-on-rails-3.2

您好我在我的开发环境中在控制台中进行了简单的模型创建,一切正常但是在heroku我得到了:

*: Can't mass-assign protected attributes: name, price, numobjects* 

我在heroku日志中看到它插入了nil值。

我的命令是:

 Plan.create!(:name => "Max", :price => 3, :numobjects => 50)

这在我的本地sqlite环境中运行良好,但在heroku和postgres

中没有

2 个答案:

答案 0 :(得分:1)

通常,如果按照您的方式创建对象,则会检查质量分配保护,因此您应该可以访问这些属性。

但是,如果您创建此对象的唯一位置来自控制台,或来自数据库种子,我不会让它们可访问,而是使用

Plan.create!(:name => "Max", :price => 3, :numobjects => 50, :without_protection => true)

通过这种方式,您只需检查一次检查轨道通常会执行的操作,这在命令环境中作为命令shell或数据库种子是正常的。

答案 1 :(得分:0)

here就是答案。

  

批量分配通常意味着将属性传递给调用   创建一个对象作为属性哈希的一部分。也就是说,你通过了   哈希中的一堆属性进入创建新的调用   对象