Ruby on rails Rails属于并且单表继承不起作用

Ruby on rails Rails属于并且单表继承不起作用,ruby-on-rails,params,single-table-inheritance,nested-attributes,belongs-to,Ruby On Rails,Params,Single Table Inheritance,Nested Attributes,Belongs To,我有一辆自行车型号和一个组件型号。一些模型继承自组件:框架,链,曲柄组等 当我提交表格时,我的参数如下所示: "bike" => { "frame" => { "id" => "4" }, "chain" => { "id" => "19" }, ... } 在我的控制器中,以下代码中断: @bike = Bike.new(params[:bike]) > Frame(#90986230) expected, got HashWithIndifferentA

我有一辆
自行车
型号和一个
组件
型号。一些模型继承自
组件
框架
曲柄组

当我提交表格时,我的参数如下所示:

"bike" => { "frame" => { "id" => "4" }, "chain" => { "id" => "19" }, ... }
在我的控制器中,以下代码中断:

@bike = Bike.new(params[:bike])
> Frame(#90986230) expected, got HashWithIndifferentAccess(#81888970)
如果我对表单进行黑客攻击以生成以下参数,它将起作用:

"bike" => { "frame_id" => "4", "chain_id" => "19" ... }
以下是我的模型:

class Bike < ActiveRecord::Base
  belongs_to :frame
  belongs_to :chain
  ...
end

class Component < ActiveRecord::Base
  has_many :bikes
end

class Frame < Component
end

我做错了什么???

您使用的是嵌套表单,因此如果您使用
接受
标记的
您的
自行车
型号中是否有
接受
的嵌套属性?
- f.fields_for @bike.frame do |frame|
  = frame.hidden_field :id
belongs_to :frame
accepts_nested_attributes_for :frame