1

我想在一个地方存储一个值,比如我的应用程序的名称(如常量),然后在整个应用程序中引用它。因此,如果我需要进行全局更改,我可以在一个地方进行并更新在我的应用程序中。这是我如何使它工作的一个想法:

在常量文件中
APPLICATION_NAME = "FuzzyOnions"

在任何视图中,我现在都可以这样引用它:
您会喜欢使用该<%= Constants::APPLICATION_NAME %>应用程序。

我遇到的问题是当我尝试在以下位置引用它时:<% @page_title = "<%= Constants::APPLICATION_NAME %> / About" %>rails throws an error。如果我尝试在链接中引用常量,它也会引发错误,例如%= 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 回答