Rails 3.1构建关联不起作用

时间:2011-07-11 20:46:38

标签: ruby-on-rails associations ruby-on-rails-3.1 model-associations

好的,所以我有一个方法应该返回一个包(service_package_id和payment_plan_id)传入并有效。包模型属于服务包和付款计划,每个模型都有许多包。

@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为零?这适用于rails 3.0.9,但至少在我的dev机器上不适用于3.1 rc4。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

想出来。

这里的主要问题是该模型没有访问数据库(故意)但我已经为payment_plan_id和service_package_id设置了attr_accessor方法。因为我将整个对象传递给id属性,该属性实际上包含了内存中的整个属性。一旦它开始命中数据库,构建应该工作