[英]How can I utilize a mix of array and hashes in Ruby on Rails Models?
我和我的朋友是新程序員,我們正在嘗試使用Ruby on Rails創建一個應用程序,小社區中的體育俱樂部可以使用該應用程序為其團隊保持得分。
我們有一個用戶模型 ,用戶(特別是體育俱樂部的負責人)可以創建一個頁面來顯示俱樂部中所有團隊的得分。 此頁面有其自己的模型,稱為計分板 。
當前,計分板的遷移如下所示:
class CreateScoreboards < ActiveRecord::Migration
def change
create_table :scoreboards do |t|
t.string :name_of_scoreboard
t.string :name_of_organization
t.string :name_of_activity
t.references :user, index: true
t.timestamps null: false
end
add_foreign_key :scoreboards, :users
add_index :scoreboards, [:user_id, :created_at]
end
end
現在,所有這些變量與每個記分板頁面實例都具有1:1的關系。 我們想將一個團隊變量添加到記分板模型中 。 由於會有很多團隊,我們決定使用以下代碼邏輯:
TeamArray[]= [ hash1= {teamname: "Example", teamwins: "20", teamloss: "10"},
hash2= {teamname: "Example2", teamwins: "10", teamloss: "5"},]
因此,團隊數據將保存在哈希中,而哈希將保存在該特定計分板的所有團隊的數組中。 但是,我們不知道如何向模型添加哈希數組。 有一個更好的方法嗎? 如果可以通過這種方式,我們如何擁有一個與記分板模型實例相關聯的哈希數組? 如有任何混淆,請提前致歉。
是的,有更好的方法可以做到這一點。 Scoreboard
應為模型; Team
應該是另一種模式。 關系數據庫的全部意義在於它可以關聯不同的信息。 為此,請在兩者之間建立關系:記分牌has_many :teams
; 團隊belongs_to :scoreboard
(如果每個團隊只能在一個計分板上;如果他們可以屬於多個計分板,則情況會稍微復雜一些,請查看has_and_belongs_to_many
)。 這將使scoreboard.teams
可以訪問(並返回Team
對象數組)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.