2013-08-27 24 views

回答

1

您需要使用options_from_collection_for_select它允许您指定要选择哪个选项

文档: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select

在这个例子中,id为17 Shop会被选中:

<%= f.select :shop_id, options_from_collection_for_select(Shop.all, :id, :name, 17) %> 
+0

由于某种原因,它不起作用,它可能是它不是一个select_tag,而是关联(f.select)上的对象实例?还是他们应该工作一致? –

+0

它与表单生成器一起工作,我粘贴的代码片段是正确的方式。 – Benj

+0

17是一个例子,我假设你不只是复制/粘贴我的代码片段,而且你调整了它的权利?你的意思是'它不起作用'? – Benj

1

由于您使用了form_for,因此只需在控制器中设置值,而不需要修改视图。

def new 
    @your_model = YourModel.new(shop_id: 10) 
    end 
+0

是的,如果不是我真的希望它在视图中出现,那么这将是n选项... –

+0

我不明白这一点。 @BenjaminSinclaire的答案应该也适用。 – Bigxiang

+0

我现在了解你的解决方案,而且非常好。表单助手在其中有一个条件不可读。我其实是用控制器的方式:)但是因为我的问题是关于form_helper的非常明确的,我检查了另一个答案作为接受的答案。非常感谢您的时间! –