管理Rails应用程序配置设置的最佳方法是否仍存在于数据库中?

我希望有人可以建议一些使用数据库配置Rails应用程序的最佳实践(即将配置设置持久保存到数据库而不是平面文件)。 我的理由是我有一个应用程序将在多个服务器上运行,并且有一些相当动态的配置设置,我想要更改它们而不必在每个服务器上进行更改。 在其他语言中,我通过使用简单的配置表(如名称/值对)和公开配置数据并定期刷新的单例来完成此操作。 使用Rails是否有类似或更好的方法? 提前致谢。

订购和限制

我需要做以下查询: SELECT * FROM “specimens” ORDER BY distribution_sheet_id DESC LIMIT 10 我已经把: :distribution_sheet_id).id %> 我喜欢输出’limit 10’而不是限制1.我想它是.last,但是我可以用其他方式表达它来限制10。 谢谢

在Ruby中实现二叉树

我一直在尝试在Ruby中实现BinaryTree类,但是我得到了stack level too deep错误,尽管我似乎没有在该特定代码段中使用任何递归: 1. class BinaryTree 2. include Enumerable 3. 4. attr_accessor :value 5. 6. def initialize( value = nil ) 7. @value = value 8. @left = BinaryTree.new # stack level too deep here 9. @right = BinaryTree.new # and here 10. end 11. 12. def empty? 13. ( self.value == nil ) […]

Ruby` when’关键字在case语句中不使用==。 它有什么用?

x == User返回true ,但case x语句不运行与User关联的块。 这里发生了什么事? u = User.new # => # x = u.class # => User x == User # => true case x when User puts “constant” when “User” puts “string” else puts “nothing?” end # => nothing?

地理编码API的响应无效JSON。 和request.location = nil

if Rails.env.development? @current_location_geo = Geocoder.search(request.remote_ip).first else @current_location_geo = request.location end if !@current_location_geo.nil? && @current_location_geo.ip == “127.0.0.1” @departure_currency_code= “AUD” @departure_currency_name= [“Australian Dollar(AUD $)”,”AUD”] else @country = Country.new(request.location.data[“country_code”].to_s) @country_code = @country.currency.code end end 我收到了request.location nil 。 我试图在配置中添加超时但对我没有帮助。 生产模式中的错误为“地理编码API的响应无效JSON”。 当我追踪它时,我得到request.location为零。 我的地理编码器版本是(1.2.6)。

的ActiveRecord :: HasManyThroughAssociationPolymorphicSourceError

我需要一个玩家拥有许多结构和属于玩家的结构。 结构是一种多态关系。 class Player player_structures end class PlayerStructures < ActiveRecord::Base belongs_to :structure, polymorphic: true belongs_to :player end class StructureA :structure has_one :player, :through => :player_structure end class StructureB :structure has_one :player, :through => :player_structure end 但是如果我拉出Player.first并询问它的结构,它会给出: ActiveRecord::HasManyThroughAssociationPolymorphicSourceError: Cannot have a has_many :through association ‘Player#structures’ on the polymorphic object ‘Structure#structure’. 但它应该能够生成一个SQL查询,在其中找到所有带有id的player_structures,然后根据structure_id和structure_type获取结构。 为什么这会失败,我怎样才能有效地构建多态连接表? UPDATE 如果我按手动方式执行操作,则可以: player_structures.collect(&:structure) Rails,你不这样做吗?

续集:如何使用组和计数

简单地说,我如何使用Sequel进行此查询? select a.id, count(t.id) from albums a right join tracks t on t.album_id = a.id group by a.id

删除Ruby中的换行符

我在删除\n和\r \n标记时遇到问题。 当我使用双引号时,它可以正常工作,否则它会留下”/” 。 使用gsub,如果没有双引号则不起作用。 为什么? result: “Remove” result: “Remove \” 我发现这是因为结果它不适用于数据库的结果……

Nokogiri分段故障?

我试图从Railscast运行一个简单的Ruby脚本,一旦我运行我的程序,我得到以下Segmentation fault bug错误。 我已经尝试卸载并重新安装Nokogiri和LibXML,但仍然没有。 无论如何修复Ruby 1.87版本? 也许这就是问题? $ ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0] /Users/da/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle: [BUG] Segmentation fault ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0] Abort trap $ ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0] $ bundle exec nokogiri -v— — warnings: [] nokogiri: 1.4.4 ruby: version: 1.9.2 platform: x86_64-darwin10.7.0 engine: ruby libxml: […]

Ruby Regexp:单个正则表达式与new和union之间的区别

我简化了这些例子。 假设我有一个包含正则表达式代码的字符串。 我希望正则表达式匹配一个文字点,因此我希望它是: \. 所以我创建了以下Ruby字符串: “\\.” 但是,当我与Regexp.union一起使用它来创建我的正则表达式时,我得到了这个: irb(main):017:0> Regexp.union(“\\.”) => /\\\./ 这将匹配斜线后跟一个点,而不只是一个点。 将之前的结果与此进行比较: irb(main):018:0> Regexp.new(“\\.”) => /\./ 这给了我想要的Regexp但没有所需的联合。 你能解释一下Ruby为什么会这样做以及如何正确结合正则表达式? 利用的上下文是导入描述正则表达式的JSON字符串并在Ruby中将它们联合起来。