运行以下命令时会调用标题中标识的错误
@component = Ccomponent.new(ccomponent_params)
获得的响应“22”与两个不同的提交隔离:
Parameters: {"authenticity_token"=>"[FILTERED]", "ccomponent"=>{"shop_id"=>"1", "unit_um_id"=>"22", "shelf_life_target"=>"2"}, "commit"=>"submit"}
Parameters: {"authenticity_token"=>"[FILTERED]", "ccomponent"=>{"shop_id"=>"1", "unit_um_id"=>"", "shelf_life_target"=>"2"}, "commit"=>"submit"}
第二种情况返回 got ""
错误消息。
所以问题在于unit_um_id
变量的关系。
该类由来自同一类的两个变量定义。
belongs_to :um, class_name: 'Categoryminor'
belongs_to :unit_um_id, class_name: 'Categoryminor', optional: true
unit_um_id
当变量不存在时,以前不会出现该错误。因此,rails 似乎不允许两个变量属于同一类(我可以明白为什么:参数始终是字符串,并且模型逻辑将转换为整数:所以这里该逻辑只处理一种关系)
um
代替计量单位,并且两者在课程中都需要(考虑容量为 75 cl(第 1 微米)的瓶子,但是以瓶子形式购买的(单位 - 第 2 微米)。
人们无法先创建关系并在每次需要变量时运行索引搜索,但这不是很有效。
否则如何解释这个模型呢?
你的问题在这里:
这应该是
现在,因为
:unit_um_id
是一个关联,所以它希望您传递该关联类型的对象,例如,Categoryminor
但您正在传递一个String
.由于存在关系,旁注
um_id
是必需的参数belongs_to
,但您当前似乎并未通过 传递一个参数ccomponent_params
。