내가 알고있는 것은 belongs_to가 아닙니다. Rails의 연관성을 통해 알지만, 어떻게 해결할 수 있습니까?연관 belongs_to : through
User
모델은 많은Batches
Batch
모델은 내가Forecast
가User
에 속한다는 것을 알리는 연결을 만들려는
많은 Forecasts
을 가지고있다. 그러나 Forecast
은 이미 User
에 속하기 때문에 내부에 Forecast
모델을 저장할 필요가 없습니다.
Forecast
과 User
사이의 관계를 Batch
모델을 통해 어떻게 만들 수 있습니까?
편집
나를 더 내 문제를 설명하겠습니다. 더 belongs_to :through
협회가 없기 때문에,
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
주석 처리 된 줄은 내가하고 싶은 것입니다,하지만 난 할 수 없습니다 :
나는 다음과 같은 모델과 연관이있다.
관계는 엄격하게 코드에서 말한 것입니다 : 사용자는 많은 배치를 가질 수 있습니다. 일괄 처리는 일기 예보이므로 일괄 처리에는 여러 예측이있을 수 있습니다. 일괄 처리는 사용자에 속해야하며 일괄 처리는 일괄 처리에 속해야하므로 일기 예보는 사용자에게 속합니다.
사용자로부터 모든 배치에 속한 모든 예측을 선택하고 싶습니다.
current_user.forecasts
내가 원하는 이유는 사용자의 범위를 자체 일괄 처리 및 예측으로 제한하는 것입니다.
Forecast.find(params[:id])
컨트롤러 액션에 그래서, 대신
Batch.find(params[:id])
또는
나는 배치와 그렇게 할 이미 수current_user.batches.find(params[:id])
또는
current_user.forecasts.find(params[:id])
을 만들 수 있습니다. 반면에 예측은 사용자에게 속하지 않습니다. 어떻게해야합니까?
실제로, 그러나 내 요구와는 약간 다릅니다. 이 경우 하나의 모델 만이 연관의 두 ID를 저장합니다. Forecast에 batch_id가 있고 Batch에 user_id가 있어야합니다. 그리고 일괄 처리를 통해 사용자와 예측 간의 관계를 만들어야합니다. –
제목과 질문을 변경했습니다. 사실 나는 belongs_to through에 대해 말하고있었습니다. ;) –