【问题标题】:Rails FormTagHelper missing important select and collection_select methodsRails FormTagHelper 缺少重要的 select 和 collection_select 方法
【发布时间】:2010-03-02 04:16:01
【问题描述】:

你可以在使用form_for(@model...)时做到这一点:

collection_select(:subscription, :duration, ["Some", "Values"], :to_s, :to_s, {:prompt => true})

输出是这样的:

<select id="subscription_duration" name="subscription[duration]">
    <option value="">Please select</option>
    <option value="Some">Some</option>
    <option value="Values">Values</option>
</select>

如果你使用一个表单没有一个模型,你就没有那个很好的帮助方法来为你创建&lt;option&gt;标签。相反,您必须这样做:

select_tag("subscription", '<option value="Some">Some</option><option value="Values">Values</option>')

FormHelper 和FormOptionsHelper包装模型的表单上协同工作,他们拥有selectcollection_select,让生活变得轻松。但是,对于普通的form_tag(没有模型),没有这样的 FormOptionsTagHelper。 FormTagHelper 有一个 select_tag 方法,但是你必须手动写出选项,这是一种浪费。好像这个问题已经在某个地方修复了。

我可以编写自己的帮助程序来摆脱手动编写这些选项标签,但这就是 FormOptionsHelper#collection_select 所做的...对于没有模型的表单是否有等效项?

【问题讨论】:

    标签: ruby-on-rails form-helpers


    【解决方案1】:

    selectcollection_select 可以在没有模型的情况下调用。我通常使用两个重要词的组合,以及一组对 [label, value] 进行选择。唯一的缺点是必须使用格式 abc[xyz]。

    您尝试使用options_for_select

    select_tag 'Account', options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40")
    

    【讨论】:

      猜你喜欢
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 2016-03-27
      相关资源
      最近更新 更多