gpt4 book ai didi

mysql - Hr#internal_employee_page 中的 ActiveRecord::StatementInvalid

转载 作者:行者123 更新时间:2023-11-29 20:27:21 24 4
gpt4 key购买 nike

我是 ruby​​ on Rails 的学习者,我想加入两个模型(表)。User.rb(用户表)

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::Error: Unknown columns 'offer_letters.user_id' in 'on Clause': SELECT offer_letters.* FROM offer_letters INNER JOIN users ON users.id = offer_letters.user_id WHERE offer_letters .id = NULL”

<div id="job_details">
<% @employees.each do |emp| %>
<%= render partial: "hr/employee_details", locals: {emp: emp} %>
<% end %>
</div>

此行错误:<% @employees.each do |emp| %>所以请告诉我哪里错了

最佳答案

当我们使用连接时,我们必须指定表名(应该是复数)及其属性。因此,在您的 where 子句中,请指定 id 及其各自的表,例如:

@employees = OfferLetter.joins(:user).where('users.id = ?', candidate_id)

或者

@employees = OfferLetter.joins(:user).where('offer_letters.id = ?', candidate_id)

关于mysql - Hr#internal_employee_page 中的 ActiveRecord::StatementInvalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39229677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com