我在 erb 模板中有一个局部变量:
<% thumbnail_width = 50 %>
我正在使用它来调整一些缩略图的大小。
但现在我意识到许多模板需要访问这个变量。
我应该把它移到哪里,它应该是什么类型的变量?
我在 erb 模板中有一个局部变量:
<% thumbnail_width = 50 %>
我正在使用它来调整一些缩略图的大小。
但现在我意识到许多模板需要访问这个变量。
我应该把它移到哪里,它应该是什么类型的变量?
有几种解决方案,具体取决于此变量与 Rails 环境的交互方式。
配置
您可以使用全局配置文件(参见例如SimpleConfig 插件)。当变量可能因环境而变化时,这是首选。
常数
如果变量应该可以在许多不同的地方和上下文中访问,您可以定义一个常量。例如,您可能想要创建文件
config/initializers/defaults.rb
并在那里写下你所有的默认配置和常量。此处定义的常量将在您的 Rails 应用程序中自动可用。
帮手
如果您的变量与应用程序的特定部分相关联,例如视图,您可能希望利用 Rails 助手。在您的特定情况下,您可以在 application_helper.rb 中创建一个图像助手
module ApplicationHelper
THUMBNAIL_WIDTH = 50
def thumbnail_tag(source, options = {})
image_tag(source, options.reverse_merge(:width => THUMBNAIL_WIDTH))
end
end
然后在需要创建缩略图时使用帮助程序,而不是在每个文件中一遍又一遍地复制相同的逻辑。