2012-11-20 46 views
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联想输入与父母使用simple_form /子账户:

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

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

回答

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匹配当前用户(其相匹配的项目)

0

您应该提取属于该公司的所有用户,并将其传递给列表以进行分配,是吗?在你的方法(辅助或模型)

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

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

+0

谢谢,我找到了一种方法尽管如此,以处理它。我发布了我的答案。 – nathan