find_by_sql我应该使用哪个模型?

时间:2014-08-01 10:25:07

标签: ruby-on-rails ruby ruby-on-rails-4 rails-activerecord

有三个表格:

  1. 用户
  2. 调度
  3. schedules_users
  4. 用户模型和时间表模型各自具有has_and_belongs_to_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_by_sql的返回值必须是模型,因为我正确理解了Rails.Api。
    它既不是用户模型返回值,也不是计划模型返回值
    scheduleles_users-table中包含用户和日程表之间的所有关系 所以我想让所有绑定到特定时间表的用户
    首先我认为这应该是解决它的正确方法,但那时我并不知道返回值必须是模型。
    我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

看来你有一个日程安排ID,并希望最终用户 - 通过像@user_schedules_binded = User.joins(:schedules).where(schedules: { id: schedule_id })

这样的加入声明可以更轻松地完成

或者,如果您有计划对象,schedule.users将执行相同的操作,两者都通过schedules_users表。