我有以下两个型号:
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_Name
和profession'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
我做错了什么?
答案 0 :(得分:0)
我认为您的加入没有任何问题。问题是您错误地使用where
。你必须像这样使用where
:
where('professions.Designation = ?', params[:tf_Designation])
或
where('professions.Designation' => params[:tf_Designation])
您的代码错误,因为它导致查询没有引用 Lead 并且您的代码容易受到SQL注入。