我正在尝试为 has_many 关系创建自定义部分并遇到一些问题。
我的模型
Message
has_many :formats
Format
belongs_to :message
validates_inclusion_of :format_type, :in => FORMAT_TYPES.keys
我有一个常量“FORMAT_TYPES”(wmv、flv 等),因此每个“格式”记录都有一个 message_id 和一个 format_type 字符串,它们在允许的列表中。
我正在尝试为 rails_admin 创建一个自定义部分,允许管理员使用复选框来选择他们想要的格式。这是我所拥有的:
- for format in FORMAT_TYPES.keys
%div
= check_box_tag "message[formats][]", format
= format
哪个输出:
<fieldset>
<legend>Formats</legend>
<div>
<input id="message_formats_" name="message[formats][]" type="checkbox" value="640x360_8">
640x360_8
</div>
<div>
<input id="message_formats_" name="message[formats][]" type="checkbox" value="480x272_8">
480x272_8
</div>
...
</fieldset>
当我选择几种格式并提交时,我收到此错误:
ActiveRecord::AssociationTypeMismatch in RailsAdmin::MainController#create
Format(#2196273220) expected, got String(#2151941320)
这听起来像是在期待一个现有的 Format id。这让我觉得我必须创建一个 has_many_through 并摆脱我的常量。(试图避免这种情况)
试图弄清楚如何正确格式化我的部分以允许创建这些新的格式记录。有任何想法吗?
非常感谢提前!