我收到错误
Mysql2::Error: Unknown column 'requests.access_level_id' in 'where clause':
SELECT `requests`.*
FROM `requests` LEFT OUTER JOIN `users` ON `users`.`id` = `requests`.`from_id`
WHERE `requests`.`access_level_id` = 1
ORDER BY id DESC
模型
class Request < ApplicationRecord
belongs_to :user, foreign_key: :from_id
end
控制器
@req = Request.left_outer_joins(:user).where(access_level_id: 1).order('id DESC')
如何从WHERE clause requests.access_level_id = 1
删除请求?我只想让access_level_id = 1
在where语句中。
答案 0 :(得分:2)
根据您的要求,您可以添加没有requests
的where子句,
@req = Request.left_outer_joins(:user).where('access_level_id = ?', 1).order('id DESC')
但是保持access_level_id的相对别名很好。如果是users
,那么请使用它,
@req = Request.left_outer_joins(:user).where(users: { access_level_id: 1 }).order('id DESC')
答案 1 :(得分:0)
假设access_level_id
是用户的字段,您可以使用以下内容替换您的查询:
@req = Request.left_outer_joins(:user).where('users.access_level_id = ?', 1).order('id DESC')
默认情况下,条件被视为属于查询中的Request方法的字段。
希望这会对你有所帮助。 如果您遇到任何问题,请告诉我。