これで、パッケージ(service_package_idとpayment_plan_id)を返すべきメソッドが渡され、有効になりました。パッケージモデルはサービスパッケージと支払い計画の両方に属し、それらのモデルのそれぞれには多くのパッケージがあります。Rails 3.1ビルドアソシエーションが動作しない
@service_package = ServicePackage.find(service_package_id)
@payment_plan = PaymentPlan.find(payment_plan_id)
@package = @service_package.packages.build(:payment_plan_id => @payment_plan, :promo_code => "149", :price => "7.99", :number_of_free_days => "30", :setup_fee => "0", :initial_price => "0.00", :initial_price_duration => "30", :final_price => "0")
logger.error "package #{@package.service_package_id}"
@spackage = @package.service_package
logger.error "spackage #{@spackage.description}"
@spackage行まではすべて素晴らしいです。ロガーはservice_package_idを取得しますが、次のログが発生するとnilクラスのnomethoderrorを返します。私の@spackageは何故ですか?これはレール3.0.9では動作しますが、少なくとも私の開発マシンでは3.1 rc4では動作しません。何かご意見は?
あなたのモデルからのあなたのアソシエーションコールを貼り付けることはできますか? –