1

アプリの名前などの値を 1 つの場所 (定数など) に保存し、それをアプリ全体で参照したいと考えています。私のアプリ全体。これを機能させる方法の1つのアイデアを次に示します。

定数ファイル内
APPLICATION_NAME = "FuzzyOnions"

どのビューでも、次のように参照できるようになりました。このアプリケーション
を気に入っていただけることでしょう。<%= Constants::APPLICATION_NAME %>

私が遭遇している問題は、次のような場所でそれを参照しようとしたときです<% @page_title = "<%= Constants::APPLICATION_NAME %> / About" %>。レールがエラーをスローします。次のようなリンクで定数を参照しようとすると、エラーがスローされます。%= link_to 'Contact Us <%= Constants::APPLICATION_NAME %>', page_path("contact-us") %>

これらのインスタンスでエラーをスローしない定数を参照する別の方法はありますか? 私が最初にやろうとしていることを達成するためのより良い方法はありますか?

4

2 に答える 2

2
<% @page_title = "<%= Constants<::APPLICATION_NAME %> / About" %> 

する必要があります

<% @page_title = Constants::APPLICATION_NAME + " / About" %> 

と:

<%= link_to 'Contact Us <%= Constants::APPLICATION_NAME %>', page_path("contact-us") %>

する必要があります

<%= link_to 'Contact Us '+ Constants::APPLICATION_NAME, page_path("contact-us") %>
于 2013-02-14T04:26:20.923 に答える
0

application.rb に YourAppName (それが何であれ) という名前のモジュールがあります。

module YourAppName
  class << self
      def [] s
      constants[s]
    end
    def constants
      # you could read this in as a yaml file, cache in a class var, etc.
      {application_name: 'Fuzzy Onions',
       url: 'fuzzy-onions.com'} 
    end




 YourAppName[:application_name]
 => "Fuzzy Onions"  

 AbServ[:url]
 => "fuzzy-onions.com" 
于 2013-02-14T04:20:17.533 に答える