使'id'attr_accessible / mass-assignable(以及所有其他属性)

时间:2012-02-10 03:11:06

标签: ruby-on-rails ruby activerecord

我正在尝试将现有数据导入我的数据库,该数据库已经有id个值。但是,AR不会让我批量分配id s。

我可以

class User
  attr_accessible :id

但是,其他所有属性都没有。我也试过了

class User
  attr_protected #none

无效。如何使id质量指定?

**我希望我的列名为id。对于相同的数据,我不需要两组ID。

3 个答案:

答案 0 :(得分:0)

ActiveRecord不允许您为记录设置ID,因为id是主键。

您可以使用taps gem来导入/导出数据。它非常易于使用,并且正是为此目的而构建的。

答案 1 :(得分:0)

出于安全原因,我建议不要将id设为attribute_accessible。您可以尝试以下方法,

user = User.find_or_create_by_id("100")
user.update_attributes({:artists_name => "jake", :age => 10})

答案 2 :(得分:0)

这可能会很痛苦,具体取决于您拥有多少属性,但我认为您需要将所有属性明确设置为attr_accessible

class User
  attr_accessible :id, :name # etc.