使用连接从多个表中获取数据

时间:2014-03-13 06:35:46

标签: ruby-on-rails

我有以下两个型号:

users
id | First_Name | Last_Name 
1  | abc        | ABC 
2  | mno        | MNO

professions
id | user_id | Designation
1  | 1       | Lead

我有一个文本框名称tf_Designation,我在其中输入了Lead的名称,我希望得到user's First_Name and Last_Nameprofession's Designation,其中名称等于{{1}我正在使用以下代码执行此操作:

Lead

工作正常,但它只给了我指定,但我还希望来自用户模型的def search if ( !params[:tf_Designation].blank? or params[:tf_Designation] !="" ) @user_designation = Profession.find(:all, :conditions => ["Designation = ?", params[:tf_Designation]]) end render 'search' end First_Name。所以我尝试了这个:

Last_Name

但我收到以下错误:

def search
  if ( !params[:tf_Designation].blank? or params[:tf_Designation] !="" )
    @user_designation = Profession.joins(:user).where("professions.Designation = " + params[:tf_Designation] )
  end       

  render 'search'
end

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为您的加入没有任何问题。问题是您错误地使用where。你必须像这样使用where

where('professions.Designation = ?', params[:tf_Designation])

where('professions.Designation' => params[:tf_Designation])

您的代码错误,因为它导致查询没有引用 Lead 并且您的代码容易受到SQL注入。