どのように私は、configファイルとレールのヘルパーメソッドを向上させることができますか?

StackOverflow https://stackoverflow.com/questions/921694

質問

私はこのようになります私のapplication_helper.rbファイル内のレールのヘルパーを持っています:

def external_link(name)
    url = external_links[name]
    if url.blank?
        Rails.logger.error "No URL defined for external link [#{name}]!"
        return "[URL undefined]"
    end
    return url
end

「external_links」変数は、外部ファイルから供給されなければならないハッシュです。ファイルには、ルビーのハッシュまたは単純なYMLの設定のような単純なものになることができます。

たぶん私は何かが欠けている - 私は外部ファイルにRubyの構文でハッシュを定義することが可能とenvironment.rbにからそれを「必要」と思ったが、それはヘルパーにハッシュ変数を公開していません。ます。

どのように私はそれがアプリケーションのヘルパーメソッドで「スコープ内」となるようにRubyのハッシュをexternaliseことができますか?

役に立ちましたか?

解決

を経由して、それをロード、あなたが示すように、基本的なYMLファイルを使用します:

config = YAML::load_file(RAILS_ROOT+'/config/external_urls.yml')

次に、あなたはそれに応じて、「設定」オブジェクトを介してアクセスすることができます。リクエスト間でのファイルのdoesntを変更する場合は、後で使用するために、このファイルのロードをキャッシュすることができ(そのためその使用毎に開かれ、解析されていない)が、thatsのパフォーマンスの最適化と、概念実証のために重要ではない。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top