代码之家  ›  专栏  ›  技术社区  ›  mattC

Rails:simple\u表单中的下拉列表在定向到编辑路径时不保留值

  •  0
  • mattC  · 技术社区  · 6 年前

    我在表单中有一个下拉选择器,即使在保存对象后,当我转到编辑页面时,下拉列表也会恢复到第一项。如果单击“提交”,该值将更改为列表中的第一项。

    在这种情况下,下拉列表包含状态列表。每次我转到编辑页面时,阿拉巴马州都会被选中,如果我不手动将该值更改回最初的状态,该州将变为阿拉巴马州。

    <%= simple_form_for @event, url: coin_event_path(@coin.id) do |f| %>    
    <%= f.input :content, :label => "Event Description", class: 'form-control' %>
    <%= f.input :link, :label => "Link to Event", class: 'form-control' %>
    <%= f.input :date, order: [:month, :day, :year], class: 'form-control' %>
    <%= f.input :time, as: :time, html5: true, class: 'form-control' %>
    <%= f.input :city, class: 'form-control' %>
    <%= f.select :state, options_for_select(us_states),{}, class: 'form-control' %>
    <%= f.input :description, :label => "Event Description", class: 'form-control' %>
    <% if can? :destroy, Event %>
         <%= f.select :accepted, [['Accepted', true], ['Not Accepted', false]] %>
    <% end %>
    <%= f.button :submit, 'Submit' %>
    
    <%= link_to "Back", coin_path(@coin.id), class: "btn btn-default" %>
    

    我如何改变它,使它保持在它应该保持的状态?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Michael Arkhipov    6 年前

    您可以使用 selected ,例如:

    options_for_select(us_states, selected: "set_current_value")
    

    更多用法示例- options_for_select() 文档。