我知道這不是belongs_to:通過在Rails中的關聯,但我怎麼能解決它?協會belongs_to:通過
User
模型有很多Batches
Batch
模型有很多Forecasts
我想創建一個協會指出,一個Forecast
屬於User
。然而,據我所知,由於Forecast
已經屬於User
,因此不需要將used_id
存儲在Forecast
模型中。
如何通過Batch
模型在Forecast
和User
之間創建此關係?
編輯
讓我更好地解釋我的問題。
我有以下型號和協會:
User < ActiveRecord::Base
has_many :batches
# has_many :forecasts, through: :batches
end
Batch < ActiveRecord::Base
belongs_to :user
has_many :forecasts
end
Forecast < ActiveRecord::Base
belongs_to :batch
# belongs_to :user, through: :batch
end
註釋行是我想做的事,但我不能,因爲沒有belongs_to :through
關聯。
該關係嚴格遵循代碼上的說法:用戶可能有很多批次。批次是一組預測,因此批次可能有很多預測。由於批次必須屬於用戶,且預測必須屬於批次,因此預測屬於用戶。
我想要選擇屬於所有來自用戶的批次的所有預測。
current_user.forecasts
我想這樣做的原因,是用戶的範圍僅限制於自身的批次和預測。因此,對控制器的動作,而不是
Batch.find(params[:id])
或
Forecast.find(params[:id])
我可以讓
current_user.batches.find(params[:id])
或
current_user.forecasts.find(params[:id])
它已經可以做到這一點與批次。另一方面,預測並不屬於用戶。我怎樣才能做到這一點?
確實,但它的作用與我的需求略有不同。在這種情況下,只有一個模型存儲來自該關聯的兩個id。我需要該Forecast具有一個batch_id,並且該批次具有一個user_id。我需要通過批量創建用戶和預測之間的關係。 – 2013-03-22 18:30:55
我改變了標題和問題。其實我是在談論belongs_to。 ;) – 2013-03-22 20:25:53