Ruby on rails Rails 3:如何将数组种子植入seed.rb?

Ruby on rails Rails 3:如何将数组种子植入seed.rb?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个interests表,它只有一个:name属性 我正在尝试(通过seed.rb)为以下数组设置种子,以便它们都显示在我的表单中(复选框)。。。我该怎么做 有没有比将其存储在seed.rb中更好的方法 [ "Adventure Sports", "Arts and Crafts", "Beauty/Hair", "Books", "Dining Out", "Fine Art", "Fine Jewelry", "Gardening", "Golf" ] 如果您想将其放入se

我有一个
interests
表,它只有一个
:name
属性

我正在尝试(通过
seed.rb
)为以下数组设置种子,以便它们都显示在我的表单中(复选框)。。。我该怎么做

有没有比将其存储在
seed.rb
中更好的方法

[ "Adventure Sports", "Arts and Crafts", "Beauty/Hair", 
  "Books", "Dining Out", "Fine Art", "Fine Jewelry", 
  "Gardening", "Golf" ]

如果您想将其放入seed.rb,您可以像在其他地方一样创建它们,例如

[ "Adventure Sports", "Arts and Crafts"].each do |interest|
  Interest.create!({:name => interest})
end
或者,您可以将它们作为常量存储在模型中,并在表单中使用

class Interest < ActiveRecord::Base
  INTERESTS = [ "Adventure Sports", "Arts and Crafts" ]
end

如果您想将其放入seed.rb,您可以像在其他地方一样创建它们,例如

[ "Adventure Sports", "Arts and Crafts"].each do |interest|
  Interest.create!({:name => interest})
end
或者,您可以将它们作为常量存储在模型中,并在表单中使用

class Interest < ActiveRecord::Base
  INTERESTS = [ "Adventure Sports", "Arts and Crafts" ]
end

我正在使用
find_或\u create_by_uu…
来确保即使再次运行
seed.rb
也只创建一次记录:

[ "Adventure Sports", "Arts and Crafts"].each do |interest|
  Interest.find_or_create_by_name(interest)
end
列名称为
name
。如果列名是例如
标题
使用
查找或创建标题

也可用于设置多个列,例如:

[["Adam", 10], ["Allan", 20], ["Andy", 30]].each do |data|
  role = Role.find_by_name("editor").id
  User.find_or_create_by_name_and_credits_and_role_id(data[0], data[1], role)
end

我正在使用
find_或\u create_by_uu…
来确保即使再次运行
seed.rb
也只创建一次记录:

[ "Adventure Sports", "Arts and Crafts"].each do |interest|
  Interest.find_or_create_by_name(interest)
end
列名称为
name
。如果列名是例如
标题
使用
查找或创建标题

也可用于设置多个列,例如:

[["Adam", 10], ["Allan", 20], ["Andy", 30]].each do |data|
  role = Role.find_by_name("editor").id
  User.find_or_create_by_name_and_credits_and_role_id(data[0], data[1], role)
end

请在代码前面使用四个空格的缩进设置代码格式。请在代码前面使用四个空格的缩进设置代码格式。