有没有办法在启动应用程序时自动创建一个新的类别实例?

时间:2014-08-19 04:50:15

标签: ruby-on-rails associations instances

我有一个分类模型和一个文章模型。该关联设置为一个类别有很多文章。普通用户不应该能够创建用户。

我想知道,在Rails中是否有任何方法可以自动创建类别实例(例如,#34; Sports","娱乐")而无需在控制台中执行或填写在一个形式?我知道一种方法是设置管理员,但有更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用db / seeds.rb文件。您可以完全访问应用程序的所有类和方法。所以你可以这样做:

Category.delete_all #avoid duplicates
Category.create(name: 'cat1')
Category.create(name: 'cat2')
#and so on

在seeds.rb上写完之后,只需调用rake db:seed并填充数据库。

由于它只是一个普通的Ruby文件,你可以用它做很多事情,例如,只在生产环境中填充类别:

def populate_categories
  Category.create(name: 'cat1')
end

case Rails.env
  when "development"
   #do something else
  when "production"
   populate_categories

end