只有一行的表的Rails约定



是否有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

希望这能帮助你或你正在寻找的东西。。

最新更新