只有一行的表的Rails约定

时间:2014-09-03 13:16:34

标签: ruby-on-rails

是否存在rails的约定或创建/操作仅包含一行的表的正确方法? 如果没有,最好的方法是什么? 我需要一种方法来存储系统的配置。

感谢。

1 个答案:

答案 0 :(得分:0)

<强>编辑:

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

在生产中设置数据库的正确顺序,db命名空间中可用的所有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,它将同时在内部创建和迁移


OR

您可以使用rails-settings-cached gem这是rails-settings gem的分支

设置完成后,您就可以执行以下操作:

Setting.foo = 123
Setting.foo # returns 123

希望这可以帮助您或您正在寻找什么..