1

私のレールビューには、次のようなドロップダウンのあるフォームがあります。

<%= simple_form_for(@appointment) do |f| %>
  <%= f.error_notification %>

  <div class="form-inputs">
    <%= f.association :client, label_method: lambda { |c| "#{c.first_name} #{c.last_name}" } %>
    <%= f.input :occured_on %>
    <%= f.input :start %>
    <%= f.input :end %>
    <%= f.input :copay_received %>
  </div>

  <div class="form-actions">
    <%= f.button :submit %>
  </div>
<% end %>

ドロップダウンの内容を current_user.id に関連付けられたクライアントのみに制限したいと思います。

どうすればこれを達成できますか?

私のコントローラーや何か他のものを見る必要があるかどうか教えてください。内容はご想像にお任せします。

4

1 に答える 1

2

コレクション引数を追加するだけです:

<%= f.association :client, label_method: lambda { |c| "#{c.first_name} #{c.last_name}" }, collection: Client.where(user_id: current_user.id) %>

別:

# this implies you have declared: user has_many :clients
<%= f.association :client, collection: current_user.clients, label_method: lambda{|c| "..."} %>
于 2013-10-21T18:52:17.333 に答える