我在Rails中製作了一個遊戲,每天在不同的時間有多個遊戲。在我的頁面控制器,我顯示的用戶知道接下來的四個可用的遊戲是:在視圖中合併來自多個Rails表的數據
@quizzes = Quiz.where("game_start >= ?", Time.now).order(game_start: :asc).limit(4)
的Quiz
模型有一個game_start
列,因此這很容易。
我想爲用戶展示第二張表格,表明他們已經註冊的。所以這將需要特定於current_user
,並且需要檢查Reservation
表,用於表明用戶是否已經註冊了遊戲。
這是棘手的地方。基於最好的做法是使用特定的,較小的型號,爲Reservation
表如下:
class CreateReservations < ActiveRecord::Migration
def change
create_table :reservations do |t|
t.integer :user_id
t.string :category
t.timestamps
end
end
end
所以在我的控制,如果我使用:
@reservations = Reservation.where(user_id: current_user.id)
它將返回category
用戶註冊的遊戲名稱。這對用戶來說並不是很有用。信息如game_start
(遊戲開始時)位於Quiz
模型中,如上所述。
比方說,我在視圖中將它作爲表格格式化。一列使用@reservations
來查詢哪些category
遊戲已經註冊(如「歷史」和「體育」)。我是否也可以查詢@quizzes
型號 - 在表格中 - 顯示相應的game_start
次?
總之,我希望控制器1)向用戶顯示他們已經簽署了(工作)遊戲; 2)基於這些遊戲category
,查詢Quiz
表,也顯示了game_start
倍。
這可能嗎?
另外,以供參考:Quiz
表:
class CreateQuizzes < ActiveRecord::Migration
def change
create_table :quizzes do |t|
t.string :category
t.datetime :game_start
t.integer :entry
t.timestamps
end
這很簡單,因爲您將結果集合存儲在不同的對象中。 –
很高興聽到。假設我在控制器中添加了@測驗。我需要在視圖中做些什麼來確保'history'類別的'game_start'匹配''''''''Reservation''Reservation'表中的相應對象?我可以使用'。哪裏連接類別? – darkginger