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
请在代码前面使用四个空格的缩进设置代码格式。请在代码前面使用四个空格的缩进设置代码格式。