12

我在 erb 模板中有一个局部变量:

<% thumbnail_width = 50 %>

我正在使用它来调整一些缩略图的大小。

但现在我意识到许多模板需要访问这个变量。

我应该把它移到哪里,它应该是什么类型的变量?

4

1 回答 1

13

有几种解决方案,具体取决于此变量与 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

然后在需要创建缩略图时使用帮助程序,而不是在每个文件中一遍又一遍地复制相同的逻辑。

于 2009-07-08T15:47:50.653 回答