2009-07-08 6 views
11

私はERBテンプレート内のローカル変数を持っている:erbテンプレートとHTMLスタイルで使用されるレイアウトで使用される変数を定義する適切な場所はありますか?

<% thumbnail_width = 50 %> 

私はいくつかのサムネイル画像をサイズ変更のためにこれを使用しています。

しかし、今私はこの変数にアクセスするためにはいくつかのテンプレートが必要であることを認識しています。

どこに移動する必要があり、どのタイプの変数を使用する必要がありますか?

答えて

12

この変数がRails環境とどのようにやり取りするかによって、いくつかの解決策があります。

構成

あなたは(たとえばSimpleConfig pluginを参照)は、グローバルコンフィギュレーション・ファイルを使用することができます。変数が環境によって変化する可能性がある場合は、これが優先されます。

変数は、さまざまな場所や状況にアクセスできる必要があります場合は、定数を定義することができ定数

。たとえば、ファイル

config/initializers/defaults.rb 

を作成し、デフォルトの構成と定数をすべて書き込むことができます。ここで定義された定数は、Railsアプリケーション全体で自動的に使用可能になります。

ヘルパー

あなたの変数は、アプリケーションの特定のセクションに関連付けられている場合は、インスタンスビューのために、あなたはRailsのヘルパーを利用したい場合があります。 はあなたの特定のケースでは、あなたがすべてのファイルに何度も同じロジックをコピーするのではなく、サムネイルを作成する必要がある場合に

module ApplicationHelper 

    THUMBNAIL_WIDTH = 50 

    def thumbnail_tag(source, options = {}) 
    image_tag(source, options.reverse_merge(:width => THUMBNAIL_WIDTH)) 
    end 

end 

が続いてヘルパーを使用し、あなたのapplication_helper.rbに画像ヘルパーを作成することができます。

+1

「ヘルパー」の回答は2番目です。 –

+0

はい、この場合は間違いなく最適な解決策です。 –

関連する問題