我有下面的模型结构
class Transaction
belongs_to :company
belongs_to :user
end
class Company
belongs_to :address
end
class User
belongs_to :address
end
classAddress
has_many :companies
has_many :users
end
字符串
我想查询所有的交易,并获得公司地址和用户地址
Transaction.joins([company: :address], [user: :address])
.select('company.addresses.line_1 as company_add_line1',
'user.addresses.line_1 as user_add_line1')
型
对于语法“company.addresses.line_1”,我得到以下错误
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'company.addresses.line_1' in 'field list'
型
如何实现这一点?
2条答案
按热度按时间bnl4lu3b1#
我注意到,您的用户和公司都应该
have_many :transactions
您的语法失败B/c您有类似ActiveRecord的语法(例如,SQL片段中的
companies.addresses.line1
)你需要这样的东西...
字符串
uxh89sit2#
您没有在公司和用户模型中提到has_many:transactions。
交叉检查字段与您的模式字段,这将工作。
字符串