如何存储常量(例如,文本字符串)以在不同的视图文件中使用

How to store constants (e.g., text string) for use in different View files

我有一段跨多个页面/部分使用的免责声明文本。我想我可以:

  1. 将此文本块本身作为部分文本,然后在需要时调用此部分文本
  2. 将此文本块保存为环境变量
  3. 将此文本块保存为带有实例变量的共享方法,然后将该实例变量包含在与需要它的页面对应的所有方法中,如下所示:

#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 稍微复杂一些。