1

在我的 Rails 视图中,我有一个带有下拉列表的表单,如下所示:

<%= 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 回答