ruby on rails 小技巧

mj發表於2019-02-16

整理幾個小技巧

和大家分享幾個我在寫ruby 的時候會用到的小技巧

通過config/initlializers/xxx.rb 來配置非rails plugin gem

這裡以redis 為例子

config/initializers/redis.rb

class Redis
  class << self
    def initialize!
      @redis ||= Redis.new
    end

    def method_missing(meth, *args, &blk)
      @redis.send(meth, *args, &blk)
    end
  end
end

Redis.initialize!

ps: 這裡可以把class Redis 定義再其他的放其他地方

這樣,我們的程式碼裡面就可以使用如Redis.set來程式設計了。

如何寫一個類似devse.setup {|config| xxx } 的配置模組

module TestSetup

  class << self
    attr_accessor :id, :key
    def setup
      yield self
    end
  end

end

TestSetup.setup do |config|
  config.id = `xxx`
  config.key = `adfad`
end

rspec 測試json api 的時候可以加入一些輔助方法

spec/support/body_jsn.rb

def body_json
  JSON.parse response.body
end

相關文章