ruby-on-rails - 只有一行的表的 Rails 约定

标签 ruby-on-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

在生产中设置数据库的正确顺序,在 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 替换前两个命令,它将在内部运行 create 和 migrate

或者

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

设置完成后,您将能够执行以下操作:
Setting.foo = 123
Setting.foo # returns 123

希望这可以帮助您或您正在寻找的东西..

关于ruby-on-rails - 只有一行的表的 Rails 约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25645399/

相关文章:

ruby-on-rails - CarrierWave如何在给定的URL下存储文件

jquery - Ajax在Rails 4中重新加载div内容错误+哪里放置远程: true

javascript - 在 Rails 中提交表单,无需重新加载页面

ruby-on-rails - 这个 Ruby 函数在做什么?

ruby-on-rails - Rails 3 - 设置环境

ruby-on-rails - Rails - AWS (Elastic Beanstalk) 部署,错误命令 'git clone'

ruby-on-rails - Ruby - 通过嵌套属性选择属于两个数组的项目的最快方法

ruby-on-rails - Rails错误: `method_missing' : undefined method `register_middleware'

ruby-on-rails - Rails, Controller 中的字母数字验证

ruby-on-rails - Solr(太阳黑子)在非关键字搜索上的查询时间提升