【发布时间】:2017-05-17 01:02:43
【问题描述】:
我有一个名为sales_code 的多态模型,其中sales_codeable_id 和sales_codeable_type 是多态属性。相关型号为processors 和platforms。
我正在我的sales_code_controller 中生成一组处理器/paltforms,如下所示:
@processorsPlatformsArray = Processor.order(:name, 'id asc').map{|p| [p.name, p.id, p.class.name]}
@processorsPlatformsArray += Platform.order(:name, 'id asc').map{|p| [p.name, p.id, p.class.name]}
在用于创建新销售代码的表单(简单表单)中,我有以下输入:
= f.input :sales_codeable_id, collection: @processorsPlatformsArray, label: "Processor/Platform:", required: :true
当我从下拉列表中选择一个处理器/平台时,它成功地将适当的 sales_codeable_id 传递到我的表单参数中。但是,提交表单会引发错误,因为没有为 sales_codeable_type 传递值(显然是必需的)。将所选处理器/平台的类名作为 sales_codeable_type 参数传递的最有效方法是什么?
【问题讨论】: