存储 rails 表单的下拉选项并仅使用该表单中的变量

Storing the drop-down options of a rails form & just using the variable in that form

我正在构建一个 rails 应用。

我的下拉字段具有不同形式的相同选项。我想将选项存储在一个单独的位置,只使用下拉字段中的变量,而不是在每个表单中键入选项。

请帮我写一段小代码或指向代码库

rails 辅助方法 select 允许您传入数组或散列来创建选项字段。

使用 select,然后您需要在一个对象中定义数据,该对象可用于您应用程序的相关部分。一种方法是使用模块。例如:

module DropDownOptions
  def number_options
    {"One" => 1, "Two" => 2, "Three" => 3}
  end

  def foo_options
    {"Foo" => "Bar"}
  end
end

然后您需要将该代码放入您的应用程序文件夹中。如果没有更明显的地方,我会把它放在 app/tools/drop_down_options.rb 中。

然后你可以将它添加到你的助手中:

module ApplicationHelper
  include DropDownOptions
end

这将允许您在视图中执行此操作:

<%= select("post", "number_id", number_options) %>

如果您需要使用哈希在您的模型中以另一种方式转换回来,您也可以将其包含在其中:

class Post << ActiveRecord::Base
  include DropDownOptions
end

然后 number_options 方法将在 post 实例中可用。允许你做这样的事情:

class Post << ActiveRecord::Base
  include DropDownOptions

  def number_label
    number_options.invert[number_id] if number_id?
  end
end

通过将选项放入模块中,您可以在任何需要的地方使用它们。例如,如果您更喜欢用户演示者或装饰器而不是辅助方法,只需将模块包含在这些对象中即可。