我有以下选择用于相关联的对象实例:预选值动态地在选择
<%= f.select :shop_id, Shop.all.map {|shop| [shop.name, shop.id]} %>
欲预选选项值中的一个动态地,即,从不同的时间到的时间。
我试过在其他答案中给出的内容(例如https://stackoverflow.com/a/5216513/1417223),但没有任何事情发生。
如何预先选择一个选项值,关闭ID?
我有以下选择用于相关联的对象实例:预选值动态地在选择
<%= f.select :shop_id, Shop.all.map {|shop| [shop.name, shop.id]} %>
欲预选选项值中的一个动态地,即,从不同的时间到的时间。
我试过在其他答案中给出的内容(例如https://stackoverflow.com/a/5216513/1417223),但没有任何事情发生。
如何预先选择一个选项值,关闭ID?
您需要使用options_from_collection_for_select
它允许您指定要选择哪个选项
在这个例子中,id为17 Shop
会被选中:
<%= f.select :shop_id, options_from_collection_for_select(Shop.all, :id, :name, 17) %>
由于您使用了form_for,因此只需在控制器中设置值,而不需要修改视图。
def new
@your_model = YourModel.new(shop_id: 10)
end
是的,如果不是我真的希望它在视图中出现,那么这将是n选项... –
我不明白这一点。 @BenjaminSinclaire的答案应该也适用。 – Bigxiang
我现在了解你的解决方案,而且非常好。表单助手在其中有一个条件不可读。我其实是用控制器的方式:)但是因为我的问题是关于form_helper的非常明确的,我检查了另一个答案作为接受的答案。非常感谢您的时间! –
由于某种原因,它不起作用,它可能是它不是一个select_tag,而是关联(f.select)上的对象实例?还是他们应该工作一致? –
它与表单生成器一起工作,我粘贴的代码片段是正确的方式。 – Benj
17是一个例子,我假设你不只是复制/粘贴我的代码片段,而且你调整了它的权利?你的意思是'它不起作用'? – Benj