0

我在具有以下关联的项目中使用 simple_form

Company  
  has_many :users 
  has_many :projects
User  
  belongs_to :company
  has_many :tasks
Project 
  belongs_to :company
  has_many :tasks
Task  
  belongs_to :project
  belongs_to :user

我正在使用 simple_form 关联输入,如下所示:

<%= f.association :user, :prompt => "Assign To...", :label_method => :first_name, :value_method => :id %>

但我需要它仅列出具有正确 company_id 的用户(与项目所属的用户相同)。有没有办法做到这一点?我做了一些谷歌搜索,到目前为止还没有提出任何内容。

4

2 回答 2

0

您应该提取属于该公司的所有用户,并将其传递到分配列表中,对吗?在您的方法中(助手或模型)

@company = Company.find(params[:id])
@labors = @company.users

它应该返回一个实例对象数组,您可以在列表中使用它。

于 2012-11-20T18:14:11.490 回答
0

我找到了一种处理方式:

<%= f.association :user, :collection => User.where(:company_id => current_user.company_id), :prompt => "Assign To...", :label_method => :first_name, :value_method => :id %>

只显示 company_id 与当前用户匹配的用户(与项目匹配)

于 2012-11-20T18:17:44.980 回答