是否有rails的约定或正确的方法来创建/操作只包含一行的表?如果没有,最好的方法是什么?我需要一种存储系统配置的方法。
谢谢。
编辑:
rake db:seed
命令基本上执行您在应用程序的db/seeds.rb
文件中编写的任何代码。虽然可以在这个文件中编写任何代码,但按照惯例,您应该编写用基本数据填充数据库的代码,
例如:当您将应用程序部署到某个地方并为其创建新数据库时,您希望具有管理员凭据的用户必须在场。因此,您将在该文件中编写创建该用户的代码。下面是将创建一个用户并为其分配管理员角色的示例代码。
puts "********Seeding Data Start************"
admin = User.create(:first_name => 'System', :last_name => 'Admin',
:email => 'systemadmin@sunpower.com', :password => 'sunpoweradmin',
:password_confirmation => 'sunpoweradmin', :source_system_id => 'systemadmin',
:source_system => 'LP',:entity_type => "Customer", :target_system => "OPENAM")
if admin.errors.blank?
puts "***User #{admin.first_name} #{admin.last_name} created ***"
admin.add_role :admin # add_role is method defined by rolify gem
puts "***admin role assigned to #{admin.first_name} #{admin.last_name}***"
else
puts "admin user failed to create due to below reasons:"
admin.errors.each do |x, y|
puts"#{x} #{y}" # x will be the field name and y will be the error on it
end
end
puts "********Seeding Data End************"
现在,每当您重新创建数据库时,只需运行以下命令即可使用基本数据填充数据库
$ rake db:seed RAILS_ENV=production
在生产中设置数据库的正确顺序,以及数据库命名空间中所有可用的rake任务如下
$rake db:create RAILS_ENV=production
$rake db:migrate RAILS_ENV=production
$ rake db:seed RAILS_ENV=production
注意:您可以用$rake db:setup RAILS_ENV=production
替换前两个命令,它将在内部运行创建和迁移
或
您可以使用rails设置缓存的gem,它是rails设置gem的分支
一旦设置好,您将能够执行以下操作:
Setting.foo = 123
Setting.foo # returns 123
希望这能帮助你或你正在寻找的东西。。