簡體   English   中英

如何在Ruby on Rails模型中利用數組和哈希的混合?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM