我学习Ruby on Rails,我想加入两个模型(表)。 User.rb(用户表)ActiveRecord :: StatementInvalid在Hr#internal_employee_page
class User < ActiveRecord::Base has_many :offer_letters end
OfferLetter.rb(offer_letter表)
class OfferLetter < ActiveRecord::Base belongs_to :user end
HrController(hr_controller.rb)
class HrController < ApplicationController
def internal_employee_page
@employees = OfferLetter.joins(:user).where(:id => :candidate_id)
end
末
运行时,我的代码我得到错误“Mysql2 ::错误:'on子句'中的未知列'offer_letters.user_id':SELECT offer_letters
。* FROM offer_letters
INNER JOIN users
ON users
。 id
= offer_letters
。 user_id
其中offer_letters
。 id
= NULL”
<div id="job_details">
<% @employees.each do |emp| %>
<%= render partial: "hr/employee_details", locals: {emp: emp} %>
<% end %>
</div>
错误在这行:<%@ employees.each做| EMP |%> 那么告诉我,我错了
当我们使用连接时,我们必须用它的属性指定表名(应该是复数形式)。所以在你的where子句中,请指定id与其各自的表,如前所示:OfferLetter.joins(:user).where(users.id =>:candidate_id) – Navin