【问题标题】:I am trying to manipulate nested parameter before saving the model, but i miss something我试图在保存模型之前操作嵌套参数,但我错过了一些东西
【发布时间】:2010-04-13 12:05:30
【问题描述】:

我看不到我错过了什么。我有嵌套项目的订单,这些项目每个都有一个种类。我想操作每个项目的 kind_id 参数,但“f[:kind_id]”总是返回 0。

@order.items.each do |f|
  f[:kind_id] =  Kind.find_by_name(f[:kind_id]).id
end

我得到的参数是

{"authenticity_token"=>"7wz7ARjwcVvCR/bpp/T04JQIQwHsMKDflF1eMCL8PTU=",
 "order"=>{"items_attributes"=>{"1271160144889"=>{"price"=>"2",
 "amount"=>"2",
 "text"=>"2",
 "kind_id"=>"fds",
 "_destroy"=>""}},
 "total_price"=>"4"}}

上面的参数当然是测试数据:)

【问题讨论】:

    标签: ruby-on-rails parameters nested-forms


    【解决方案1】:

    因为:kind_id 是一个整数列,ActiveRecord 会自动为您将其解释为一个整数 ("fds".to_i #=> 0)。您应该将attr_accessor :kind_name 添加到Item 模型并将表单字段切换为kind_name。然后就可以了

    @order.items.each do |f|
      f.kind = Kind.find_by_name(f.kind_name)
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 2010-09-06
      • 2010-10-17
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多