Ruby on rails 通过sql查找我应该使用哪种模型?
共有三个表格:Ruby on rails 通过sql查找我应该使用哪种模型?,ruby-on-rails,ruby,ruby-on-rails-4,rails-activerecord,Ruby On Rails,Ruby,Ruby On Rails 4,Rails Activerecord,共有三个表格: 使用者 时间表 用户时间表 用户模型和计划模型都有has\u和\u属于\u many-关系。 现在我只想这样做: user_id_binded = Schedule/User/Object/#I dont know!#.find_by_sql ["SELECT schedules_users.user_id FROM schedules_users WHERE schedules_users.schedule_id = ?", schedule.id] @user_schedu
has\u和\u属于\u many
-关系。现在我只想这样做:
user_id_binded = Schedule/User/Object/#I dont know!#.find_by_sql ["SELECT schedules_users.user_id FROM schedules_users WHERE schedules_users.schedule_id = ?", schedule.id]
@user_schedules_binded = User.find(user_id_binded)
但是第一个find\u by\u sql
的返回值必须是一个模型,因为我正确理解了Rails.Api。它既不是用户模型返回值,也不是计划模型返回值。
在schedules_users-table中是用户和计划之间的所有关系。
因此,我希望获得绑定到特定计划的所有用户。
首先,我认为这应该是解决问题的正确方法,但当时我不知道返回值必须是一个模型。
我该如何解决这个问题?似乎您有一个计划ID,并且最终需要用户-这可以通过像
@user\u schedules\u binded=user.joins(:schedules)这样的join语句来实现。其中(计划:{ID:schedule\u ID})
或者,如果您有schedule对象,
schedule.users
也会这样做,都会通过schedules\u users表。为什么不创建ScheduleUser
模型并指定has\u many through
关系呢?这就是为什么:phas\u many through
关系并没有阻止这一原则。我同意,有很多人:这里的路是穿过的,我不明白你为什么认为这里不干燥。这真是太棒了!非常感谢你。还有一个问题:当前输出是`#。如何获取用户的姓名
@user_schedule_bind.first.name`只返回第一个条目,但我需要所有用户的名称。schedule.users.each do | user | user.name end
my solution。谢谢你的帮助。