【问题标题】:Rails 3.1 build association not workingRails 3.1构建关联不起作用
【发布时间】:2011-07-11 20:46:38
【问题描述】:

好的,所以我有一个方法应该返回一个包(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 但至少在我的开发机器上不适用于 3.1 rc4。有什么想法吗?

【问题讨论】:

  • 能否粘贴您的模型中的关联调用。

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


【解决方案1】:

想通了。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多