在我將這個功能添加到我學校的應用程式中,用戶有一個新的 Checkup(一個簡短的英語測驗)由系統呈現給他們每 4 周做一次。我想構建一個查詢,該查詢始終從資料庫中檢索學生以前未回答過的 Checkup。由于模型是關聯的,我相信這很簡單,但我不知道如何使用 Rails 對查詢進行編碼(已經做過研究,但無法找到答案)。這里需要考慮三種模型:User、Answer 和 Checkup。對于學生給出的答案,我有一個單獨的答案模型,因為由于應用程式的其他功能,它們必須單獨處理。這是用戶模型:
class User < ApplicationRecord
has_many :answers
end
這是答案模型:
class Answer < ApplicationRecord
belongs_to :user
belongs_to :checkup
end
這是 Checkup 模型
class Checkup < ApplicationRecord
has_many :answers
end
在顯示 Checkup 的頁面的控制器中,我希望在頁面的 action 中有一個變數來保存檢索到的 Checkup:
def exams
@next_checkup = #the ActiveRecord query goes here
end
查詢需要檢索在其相關答案中沒有當前用戶給出的答案的 Checkup(可以通過屬性“user_id”檢索答案的用戶)。我應該如何編碼查詢?謝謝!
uj5u.com熱心網友回復:
我會嘗試:
@next_checkup = Checkup.where.not(id: current_user.answers.pluck(:checkup_id)).first
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/338825.html
標籤:红宝石轨道 红宝石 活动记录 ruby-on-rails-5 rails-activerecord
