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)