当你使用时你可以这样做 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>

如果您使用表格 没有 一个模型,你没有很好的辅助方法来创建 <option> 给你的标签。相反,你必须这样做:

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

表单助手和 表单选项助手 共同努力 包装模型的形式, ,并且他们有 selectcollection_select 让生活变得轻松。对于一个普通的 form_tag (没有模型)但是,没有这样的 FormOptionsTagHelper。 表单标签助手 有一个 select_tag 方法,但你必须手动写出选项,这是一种浪费。似乎这已经在某个地方得到了修复。

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

有帮助吗?

解决方案

选择集合选择 无需模型即可调用。我通常使用两个重要单词的组合和一组 [标签,值] 来进行选择。唯一的缺点是必须使用 abc[xyz] 格式。

您尝试使用 选择的选项?

select_tag 'Account', options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top