7
私は最初のGem for Railsのリリースに取り掛かっています。これはかなりシンプルですが、設定オプションの設定にアクセスする必要があります。私は、ユーザーに 'config/initializers'に何かを入れて、それに私の宝石と結びつけたいと思っています。Rails Gem用の設定方法
質問:私は、Railsの宝石に設定オプションを提供するためのベストプラクティスはありますか?私は開発を支援エンジンで
私は最初のGem for Railsのリリースに取り掛かっています。これはかなりシンプルですが、設定オプションの設定にアクセスする必要があります。私は、ユーザーに 'config/initializers'に何かを入れて、それに私の宝石と結びつけたいと思っています。Rails Gem用の設定方法
質問:私は、Railsの宝石に設定オプションを提供するためのベストプラクティスはありますか?私は開発を支援エンジンで
、Forem、我々はこのようなトップレベルの定数にmattr_accessors
を使用します。
module Forem
mattr_accessor :user_class, :theme, :formatter, :default_gravatar, :default_gravatar_image,
:user_profile_links, :email_from_address, :autocomplete_field,
:avatar_user_method, :per_page
...
forem.rb libに/次にconfig/initializers
の内側に、我々はにユーザーに尋ねます
Forem.user_class = 'User'
Forem.autocomplete_field = :login
短い宝石名では、あまり差はありませんこのソリューションと私が提案するもう1つのソリューションとの間の問題です。
溶液#2
はまだトップレベルの定数にmattr_accessors
を使用しますが、ブロックを取り、オブジェクトを生成し、このモジュールにconfig
方法を提供します。
module ReallyComplicatedGemName
mattr_accessor :....
def self.config(&block)
yield(self)
end
...
この道の人々はできる:
ReallyComplicatedGemName.config do |config|
config.user_class = "User"
...
end
完璧、ありがとう! –