Rails FormTagHelper 缺少重要的 select 和 collection_select 方法
-
23-09-2019 - |
题
当你使用时你可以这样做 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>')
表单助手和 表单选项助手 共同努力 包装模型的形式, ,并且他们有 select
和 collection_select
让生活变得轻松。对于一个普通的 form_tag
(没有模型)但是,没有这样的 FormOptionsTagHelper。 表单标签助手 有一个 select_tag
方法,但你必须手动写出选项,这是一种浪费。似乎这已经在某个地方得到了修复。
我可以编写自己的帮助程序来摆脱手动编写这些选项标签,但这就是 FormOptionsHelper#collection_select
做...对于没有模型的表单,是否有等效的形式?
解决方案
选择 和 集合选择 无需模型即可调用。我通常使用两个重要单词的组合和一组 [标签,值] 来进行选择。唯一的缺点是必须使用 abc[xyz] 格式。
您尝试使用 选择的选项?
select_tag 'Account', options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40")
不隶属于 StackOverflow