我在项目中使用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的用户(与项目所属的相同)。有没有办法做到这一点?我做了一些谷歌搜索,到目前为止还没有提出任何建议。
答案 0 :(得分:0)
您应该提取属于公司的所有用户,并将其传递到列表进行分配,是吗?在您的方法(帮助者或模型)
@company = Company.find(params[:id])
@labors = @company.users
它应该返回一个实例对象数组,您可以在列表中使用它们。
答案 1 :(得分: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与当前用户匹配的用户(与项目的用户匹配)