Ruby on rails 通过RubyonRails中的文本框值从多个模型获取数据
我有两个模型,下面是这些模型的模式:Ruby on rails 通过RubyonRails中的文本框值从多个模型获取数据,ruby-on-rails,Ruby On Rails,我有两个模型,下面是这些模型的模式: user's model schema: id | First_Name 1 | abc 2 | xyz profession's model schema: id | UserID | Designation 1 | 1 | Lead 2 | 1 | software engineer 3 | 2 | Lead 我有一个文本框,在搜索页面中输入用户的“指定”,当我在“
user's model schema:
id | First_Name
1 | abc
2 | xyz
profession's model schema:
id | UserID | Designation
1 | 1 | Lead
2 | 1 | software engineer
3 | 2 | Lead
我有一个文本框,在搜索页面中输入用户的“指定”,当我在“指定”文本框中输入“Lead”并单击提交按钮时,它会给我用户的名字和指定
其名称等于“铅”。下面是我的查看页面代码:
<table>
<tr>
<td align="center" style="vertical-align:top;">
<h2 style="color:Black; font-size: x-large;">Specs</h2>
<table>
<tr>
<td align="center">
<input type="text" name="tf_Designation" Style="text-align: left;" BackColor="#e5e5e5" Width="180px" ForeColor="Gray" Font-Size="Large">
</td>
</tr>
</table>
<table>
<tr>
<td>
<div class="button">
<input type="submit" name="search" value="Search" class="buttonSearch">
</div>
</td>
</tr>
<tr>
<td>
<div class="button">
<%= button_to "Back", '/default', { method: :get, :class => "buttonBack" } %>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
但它给了我以下的错误:
SQLite3::SQLException: no such column: professions.user_id: SELECT "users".* FROM "users" INNER JOIN "professions" ON "professions"."user_id" = "users"."id" WHERE "professions"."Designation" = 'Lead'
但在上面的错误中,它使用了“专业”,“用户id”
,但在我的专业模型中,我使用的是“用户id”
,而不是“用户id”
。那么我如何将“user\u id”
更改为“UserID”
请建议我,等待您的回复。谢谢
profession = Profession.find(:all,:conditions=>["designation=?",params[:search_key]], :select=>"user_id")
pro_users = User.find profession
first_names = pro_users.map(&:first_name)
params[:search\u key]
将搜索指定项。在控制器中使用以下代码:
@first_names = User.joins(:professions).where(:professions => {:designation => params[:tf_Designation].strip}).collect(&:first_name)
它应该返回具有所需名称的所有用户的名字。你能告诉我你在参数中得到了什么以及这个查询的输出是什么吗。错误:{SQLite3::SQLException:没有这样的列:professions.user\u id:选择“users”。*从“users”内部加入“professions”上的“professions”。“user\u id”=“users”。“id”中的“professions”。“designment”=“Lead”}但在professions表中的外键列是“UserID”不是“user_id”,我在哪里更改它。您在模型中提到了什么。你能试着在用户模型中提到外键如下:has\u many:professions,class\u name:“Profession”,foreign\u key:“UserID”
profession = Profession.find(:all,:conditions=>["designation=?",params[:search_key]], :select=>"user_id")
pro_users = User.find profession
first_names = pro_users.map(&:first_name)
@first_names = User.joins(:professions).where(:professions => {:designation => params[:tf_Designation].strip}).collect(&:first_name)