我有一個Rails應用程序2.3.11其中有兩個關鍵模型:的Rails協會
- 活動
- 交易
直播現場:http://iatidata.heroku.com
Github上:https://github.com/markbrough/IATI-Data
每筆交易都嵌套在一項活動中。每項活動都有多個交易。
我想我已經對關聯如何在Rails中工作感到困惑,但也許我試圖做的事情是不可能的。
本質上,我想獲得屬於每個國家的所有活動的交易總價值。那麼多少錢去印度,有多少阿富汗等
這工作:
@thiscountry_activities.each do |a|
@thiscountry_value = @thiscountry_value + a.transactions.sum(:value)
end
但是,這並不工作:
@thiscountry_value = @thiscountry_activities.transactions.sum(:value)
它給這個錯誤:
undefined method `transactions' for #<Array:0xb5670038>
@thiscountry_activities定義如下:
@activities = Activity.find(:all, :conditions=> @conditions)
這是放置在一個循環獲取每個接收國家代碼。 @條件是:
@conditions[:recipient_country_code]=*each recipient country code, e.g. AF*
看起來像我有某種關聯問題。這是如何設置模型:
class Transaction < ActiveRecord::Base
belongs_to :activity
end
class Activity < ActiveRecord::Base
has_and_belongs_to_many :policy_markers
has_and_belongs_to_many :sectors
has_many :transactions
end
我認爲這可能是一個相當簡單的問題,但我無法弄清楚發生了什麼事情。這兩個模型通過id(在Activity中)和activity_id(在Transactions中)連接在一起。
謝謝!
謝謝!很高興知道它應該如何工作。我會試試看。謝謝。 – Mark