2015-04-23 84 views
0

我有一个名为@domianskill_technical_skills的列表。此表为domain_skillstechnical_skills数据相关的表,并基于所检索domain_skill_id检查一个字段是否包含在ROR的另一个列表中

我需要从technical_skills返回所有technical_skills表,但多了一个属性命名分配这如果属实technical_skill_id出现在@domianskill_technical_skills列表中。

我的工作代码就像下面

def assigned_technical_skills 

     @domain_skill_technical_skills = DomainSkillsTechnicalSkill.select('id, technical_skill_id').where(domain_skill_id: params[:domain_skill_id]) 

     Rails.logger.info(@domain_skill_technical_skills.to_a) 

     TechnicalSkill.all.where(record_status: 1).each do |skill| 

     if @domain_skill_technical_skills.include?(skill.id) then 
      Rails.logger.info(skill.id.to_s + skill.name) 
     end 

     end 

     respond_with @domain_skill_technical_skills 
    end 

请指引我,如果以正确的语句,也需要选择所需的字段(ID,姓名,分配)和回创建一个实例。

回答

0

你可能想用它来取代你的代码,如果DomainSkillsTechnicalSkill有“technical_skill_id”列

def assigned_technical_skills 
    # just collect technical_skill_id 
    @domain_skill_technical_skill_ids = DomainSkillsTechnicalSkill.select('id, technical_skill_id').where(domain_skill_id: params[:domain_skill_id]).collect(&:technical_skill_id) 
    Rails.logger.info(@domain_skill_technical_skill_ids.to_a) 
    @technical_skills = [] 
    TechnicalSkill.select('id, name').where(record_status: 1).each do |skill| 

    @technical_skills << skill.as_json.merge!(
     { assigned: @domain_skill_technical_skill_ids.include?(skill.id)} 
    )  
    end 
    respond_with @technical_skills 
end 
+0

''//应该成为''#感谢 – 2015-04-23 08:58:19

+0

但分配是不是在表中的字段。我需要添加额外的。现在我在'字段列表'**中获得了**未知列'分配'。另外我只得到了映射数据。 – Akhil

+0

@Akhil更新的答案可以检查,如果其工作? –

相关问题