在Rails表单中编辑时选择值

时间:2016-05-04 06:13:25

标签: ruby-on-rails select

我需要在编辑时在选择标记上获得选定的值。

我有这样的表格选择字段。

<%= f.select :city,  options_from_collection_for_select(@cities, 'id', 'name',@city),{}, {:class=>'form-control',:'data-validation'=>"required",:'data-validation-error-m‌​sg'=>"Select City"} %>

在编辑器的控制器中,我确实喜欢这样:

def edit
 @cities=City.all
 @p = Property.find(params[:id])
 @city=@p.city
end

当我尝试在编辑表单中打印此<%= @city %>时,它会从数据库中获取所选值。但是,当我尝试在选择字段中给出时,它没有反映出来。请帮忙。

任何帮助都是值得赞赏的

3 个答案:

答案 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-m‌​sg'=>"Select City"} %>

基本上,如果你在options_from_collection_for_select之后将{selected:@ city.id}添加到哈希值,它应该可以工作。选择方法有点时髦。