web-dev-qa-db-ja.com

Rails 4 simple_form collection_select

以下を単純な形式に変換するにはどうすればよいですか?

<%= form_for(@bill) do |f| %>

<%= f.label :location_id %>
<%= f.collection_select(:location_id, @locations, :id, :location_name, 
      {:selected => @bill.location_id}) %>

@locationsはwhereクエリの結果であるため、単純な関連付けは使用できません。

26
markhorrocks

これを試して

<%= simple_form_for @bill do |f| %>
   <%= f.input :location,:collection => @locations,:label_method => :location_name,:value_method => :id,:label => "Location" ,:include_blank => false %>
   <%= f.button :submit %>
<%end%>

この助けを願っています

60
Viren

最後は次のとおりです。

<%= f.input :location_id, collection: @locations, label_method: :location_name, value_method: :id,label: "Location", include_blank: false, selected: @bill.location_id %>
7
markhorrocks

単純な形式で、場所と請求書の間に関連付けがある場合、次のようにできます。

<%= simple_form_for @bill do |f| %>
  <%= f.association :location, collection: @locations, priority: @bill.location %>
  <%= f.button :submit %>
<% end %>

これが役立つことを願っています。

2
Rails Guy