1

formtastic を使用してネストされたフォームをレンダリングしようとしています。親モデルに has_many/accepts_nested_attributes_for セットアップがあります。すべてがうまくいっています。唯一の問題は、ネストされたモデルの順序を並べ替えたいということです。

# this works but i want answers sorted a certain way
= semantic_form_for survey do |f|
  = f.inputs :for => :answers do |answer_form|
    = answer_form.input :content

次のようなことをしようとすると:

# form styles become extremely messed up but the order is correct
= semantic_form_for survey, do |f|
  = f.semantic_fields_for :answers, f.object.answers.joins(:question).order('questions.position') do |answer_form|
    = answer_form.input :content

:finder_sql と :class を使用して :sorted_answers という「偽の」 has_many 関係を作成しようとしましたが、どちらも機能しません (answer_form は nil IIRC です)。

私が求めているのは、 :for => (関係) を使用できるかどうかですが、関係の順序を指定できるかどうかだと思います。多分:for_optionsを使っていますか?

4

2 に答える 2

0

formtastic 3.1.3を使用すると、これでうまくいきました

f.input :answers, as: :check_boxes, :member_label => :some_column, collection: Answer.order(:some_column)

Formtastic はアクティブレコードっぽいので、コレクションは配列ではなく ActiveRecord_Relation クラスでなければならないことに注意してください。

于 2015-11-09T08:03:19.553 に答える