【发布时间】:2017-11-20 02:44:43
【问题描述】:
我是编程和 Rails 的新手。在我的 Rails 应用程序中,我有称为 users、listings、reservations 的模型。一个用户有_many 个列表和预订。一个列表有_many 个预订和预订属于一个列表和用户。
class User < ActiveRecord::Base
has_many :listings
has_many :reservations
end
class Listing < ActiveRecord::Base
belongs_to :user
has_many :reservations
end
class Reservation < ActiveRecord::Base
belongs_to :user
belongs_to :listing
end
我想要一个查询来获取所有包含以下详细信息的预订
RESERVATIONS # | LISTING OWNER NAME | LISTING OWNER EMAIL | LISTING OWNER PHONE | GUEST NAME | GUEST EMAIL | CLASS OF LISTING | YEAR OF LISTING | NIGHTLY RENTAL RATE OF LISTING| TOTAL RENTAL AMOUNT
架构:
create_table "users", force: :cascade do |t|
t.string "email",
t.string "fullname",
t.string "phone_number"
end
create_table "listings", force: :cascade do |t|
t.string "vehicle_type",
t.string "listing_name" ,
t.string "make",
t.string "model",
t.string "year",
t.integer "daily_rent",
t.integer "user_id"
end
create_table "reservations", force: :cascade do |t|
t.integer "user_id",
t.integer "total",
t.integer "listing_id"
end
作为房源所有者和访客,两者都是用户 我可以通过一个简单的 SQL 查询来获取所有预订详细信息,包括客人的电子邮件和电话以及相应预订的详细信息
select r.id , u.email, u.fullname ,l.listing_name,l.year,l.daily_rent,r.total from reservations r , users u ,listings l where u.id = r.user_id and l.id = r.listing_id;
1)我无法提取列表所有者名称 |所有者电子邮件 | OWNER PHONE,但我能够获取客人姓名 |来宾电子邮件 |来宾电话。 如何获取 LISTING OWNER 详细信息??
2) 如何在 Rails Active Record 中编写上述 SQL 查询,以便在模型或控制器中使用它来获取结果?
非常感谢任何帮助。在此先感谢!
【问题讨论】:
标签: mysql sql ruby-on-rails ruby rails-activerecord