我想在一个地方(比如一个常量)存储一个值,比如我的应用程序的名称,然后在我的应用程序中引用它。因此,如果我需要进行全局更改,我可以在一个地方创建它它会在我的应用程序中更新。以下是关于如何使其发挥作用的一个想法:
在常量文件中
APPLICATION_NAME = "FuzzyOnions"
在任何视图中,我现在可以像这样引用它:
您会喜欢使用<%= Constants::APPLICATION_NAME %>
应用程序。
我遇到的问题是当我尝试在以下位置引用它时:<% @page_title = "<%= Constants::APPLICATION_NAME %> / About" %>
rails抛出错误。如果我尝试在%= link_to 'Contact Us <%= Constants::APPLICATION_NAME %>', page_path("contact-us") %>
是否有另一种方法可以引用一个不会在这些实例中引发错误的常量?有没有更好的方法来完成我想要开始做的事情?
答案 0 :(得分: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") %>
答案 1 :(得分: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"