2013-04-29 212 views
0

所以我有以下字段項目的典範:生成模型Ruby on Rails的

  • 名稱(字符串)
  • 說明(文本)
  • 藏起來(串)
  • 導引頭(串)
  • 龍(浮動)
  • 緯度(浮動)
  • 關鍵字(字符串)
  • 找到(布爾)

排行榜應具有以下字段:

-Username(名稱) -Points(INT)

我想創造高分,將迭代模型Item模型並查找布爾值爲true的entiers。然後用一個點將搜索者添加到高分表。如果用戶已經存在,那麼只需在他的條目中添加一個額外的點。

我怎麼會去設計這種類型的數據庫...

+0

你是什麼意思?「如果用戶已經存在,那麼只需在他的條目中添加一個額外的點。」當它決定再次迭代?他的作品有什麼意義? – kiddorails 2013-04-29 11:39:27

+0

如果用戶已被添加到高分表。每次找到的選項從false更改爲true時,它應該迭代。 (因爲創建新條目時它總是錯誤的)一個點意味着一個分數。我將編輯帖子。 – 2013-04-29 11:42:22

回答

2

我永遠不會建議迭代方法在這裏。這是我們正在討論的數據庫,對數據進行線性迭代是不現實的。

你可以做的是使用Observer。閱讀有關他們在這裏 - http://api.rubyonrails.org/classes/ActiveRecord/Observer.html

有了這個,你可以檢查在saveupdate回調並根據您的布爾值,你可以創建/更新的高分紀錄。

+0

哦,這很酷! 讓我只寫邏輯。 您可以創建一個觀察項目模型的Obeserver。 當模型 中的內容更新時,您可以檢查找到的選項是否爲真 如果爲true在高分模型中創建新條目 – 2013-04-29 12:07:42

+0

準確無誤。做這份工作真是太棒了。 – kiddorails 2013-04-29 17:31:05