どのように私は、configファイルとレールのヘルパーメソッドを向上させることができますか?
-
06-09-2019 - |
質問
私はこのようになります私の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のパフォーマンスの最適化と、概念実証のために重要ではない。
他のヒント
I使用 RAILS_ROOT / configに/このようapplication_config.ymlます:
development: &defaults
items_per_page: 25
secure_with_basic_auth: false
base_url: development.com
test:
<<: *defaults
base_url: test.com
production:
<<: *defaults
base_url: production.com
次に、このようにそれらを参照します:
class FooController < ApplicationController
def index
@base_url = property(:base_url)
end
end
が存在しても良く見えるのAppConfigプラグインには、もありますが、私はそうではありませんまだことを試してみました。
所属していません StackOverflow