我需要在编辑时在选择标记上获得选定的值。
我有这样的表格选择字段。
<%= f.select :city, options_from_collection_for_select(@cities, 'id', 'name',@city),{}, {:class=>'form-control',:'data-validation'=>"required",:'data-validation-error-msg'=>"Select City"} %>
在编辑器的控制器中,我确实喜欢这样:
def edit
@cities=City.all
@p = Property.find(params[:id])
@city=@p.city
end
当我尝试在编辑表单中打印此<%= @city %>
时,它会从数据库中获取所选值。但是,当我尝试在选择字段中给出时,它没有反映出来。请帮忙。
任何帮助都是值得赞赏的
答案 0 :(得分:1)
<%= f.select :city, options_for_select(@cities.collect{|city| [city.name, city.id]}, @city), :prompt => "Select One", :class => 'form-control' %>
希望这有帮助!您可以看到options_for_select
答案 1 :(得分:1)
您检查了collection_select吗? 类似的东西:
f.collection_select :city, :city_id, @cities, :id, :name
无论何时创建/编辑新对象,表单的构建器都会使用对象的值填充select(如果有对象);这样,将设置selected
属性 - 或者只是在创建新对象时填充选择。
答案 2 :(得分:1)
我认为应该这样做:
<%= f.select :city, options_from_collection_for_select(@cities, 'id', 'name',@city), {selected: @city.id}, {:class=>'form-control',:'data-validation'=>"required",:'data-validation-error-msg'=>"Select City"} %>
基本上,如果你在options_from_collection_for_select之后将{selected:@ city.id}添加到哈希值,它应该可以工作。选择方法有点时髦。