如何存储常量(例如,文本字符串)以在不同的视图文件中使用
How to store constants (e.g., text string) for use in different View files
我有一段跨多个页面/部分使用的免责声明文本。我想我可以:
- 将此文本块本身作为部分文本,然后在需要时调用此部分文本
- 将此文本块保存为环境变量
- 将此文本块保存为带有实例变量的共享方法,然后将该实例变量包含在与需要它的页面对应的所有方法中,如下所示:
#3 的示例:
def disclaimer
@text = "text"
end
def homepage
disclaimer
end
def page_one
disclaimer
end
# then the view file for homepage or page_one would just call @text
这几种方式哪个更"Rails"?
如您的问题所述,有几种方法可以做到这一点。最好的办法是使用部分,或者制作一个帮助器并在帮助器中为您的免责声明定义一个方法。
助手应该快一点,因为他们不渲染部分。如果您的免责声明是静态文本,这是最好的选择。如果您在免责声明中使用 HTML,最好使用部分
示例助手:
module DisclaimerHelper
def disclaimer
"This is the static text of my disclaimer."
end
end
我肯定会选择选项 1。环境变量通常保留用于您的应用程序使用的服务的凭据,选项 3 似乎比选项 1 稍微复杂一些。
我有一段跨多个页面/部分使用的免责声明文本。我想我可以:
- 将此文本块本身作为部分文本,然后在需要时调用此部分文本
- 将此文本块保存为环境变量
- 将此文本块保存为带有实例变量的共享方法,然后将该实例变量包含在与需要它的页面对应的所有方法中,如下所示:
#3 的示例:
def disclaimer
@text = "text"
end
def homepage
disclaimer
end
def page_one
disclaimer
end
# then the view file for homepage or page_one would just call @text
这几种方式哪个更"Rails"?
如您的问题所述,有几种方法可以做到这一点。最好的办法是使用部分,或者制作一个帮助器并在帮助器中为您的免责声明定义一个方法。
助手应该快一点,因为他们不渲染部分。如果您的免责声明是静态文本,这是最好的选择。如果您在免责声明中使用 HTML,最好使用部分
示例助手:
module DisclaimerHelper
def disclaimer
"This is the static text of my disclaimer."
end
end
我肯定会选择选项 1。环境变量通常保留用于您的应用程序使用的服务的凭据,选项 3 似乎比选项 1 稍微复杂一些。