has_many関係のカスタムパーシャルを作成しようとしていますが、いくつかの問題が発生しています。
私のモデル
Message
has_many :formats
Format
belongs_to :message
validates_inclusion_of :format_type, :in => FORMAT_TYPES.keys
定数「FORMAT_TYPES」(wmv、flvなど)があるので、各「Format」レコードには、許可されたリストにある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)
これは、既存のフォーマットIDを想定しているようです。そのため、has_many_throughを作成して、定数を削除する必要があると思います。(それを避けようとしている)
これらの新しいフォーマットレコードの作成を可能にするために、パーシャルを適切にフォーマットする方法を理解しようとしています。何か案は?
よろしくお願いします!