我知道我可以在选择框中使用options_from_collection_for_select来显示其中的选项列表。如果我添加(first.id),它将选择第一个选项作为默认预选。示例:
options_from_collection_for_select(@hauses, 'id', 'timebuild', @hauses.first.id)
但是,如果在index.rhtml中,我将此选择框与第一个选项作为默认选择,每次刷新页面时,它仍将再次选择第一个选项,而不是当前选项。
请指导,如何更改上面的参数,所以当用户选择示例选项2,然后刷新页面时,它不会更改为选项1,但仍然在选项2中。也只是第一次页面加载,它将显示选项1(默认)。
谢谢
答案 0 :(得分:0)
好的,所以你希望选择框有一个默认值。凉。但是你不应该在options_from_collection中设置它。
您应该在将存储此ID的对象中设置它。
方法签名是
options_from_collection_for_select(collection, value_method, text_method, selected = nil)
因此,所选的值应该是您选择的值。如果您正在做类似
的事情form_for @super_cool do |f|
...
select_tag...
options_from_collection_for_select(@hauses, 'id', 'timebuild', @super_cool.hause_id)
此外,collection_select更容易......在我的例子中,
form_for @super_cool do |f|
...
f.collection_select :hause_id, @hauses, :id, :timebuild