比方說,我有以下表中的數據紅寶石環路添加的東西放在一起
id count
1 5
1 6
2 7
,我想在結尾處用一個數組{[1,11] [2,7]}。我如何最有效地做到這一點?
到目前爲止,我有這樣的:
IDs = Array.new
table.each do |t|
if !IDs.include? t.id
IDs << t.id
end
end
,然後我在想沿IDs.each do |i|
線去,並將它添加到一個臨時變量...然後最終返回一個二維數組。
有沒有更簡單的方法?這一切都來自一個MySQL數據庫,所以我怎麼能在軌道應用程序的紅寶石運行像SELECT id, sum(count) FROM table GROUP BY id
?
編輯:
下面是創建在文章表遷移
class CreateArticles < ActiveRecord::Migration
def change
create_table :articles do |t|
t.integer "nid"
t.string "title"
t.string "section"
t.integer "views"
t.date "date"
t.integer "user_id"
end
end
end
的NID整數是一個我想基於聚合它(即查詢是SELECT nid, title, section, sum(views), date FROM users WHERE user_id=?
然後我需要一個在這樣的模式,通過文章屬於(1-多),這是用戶表。
我article.rb文件只有在它belongs_to :user
和user.rb具有has_many :articles
編輯2:
我在叫article.rb文件進行了命名範圍:總和與拉姆達{的find_by_sql(「選擇......」)}
現在的問題是我怎麼放那裏的通配符爲WHERE user_id = ?
,以便我只爲正確的用戶抓取文章?現在我的user_controller
中有@articles = Articles.sum
參數。
是的,你可以...它更簡單,如果你運行你自己提出的查詢 – Hackerman
我該怎麼做?在model.rb文件中命名範圍? – Killerpixler
該表是否與某個模型關聯?你的模型結構是什麼? – BroiSatse