2015-04-23 155 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更新的答案可以檢查,如果其工作? –

相關問題