レールにformtasticとの関連からのフィールドを使用して(にhas_many)モデル
-
25-09-2019 - |
質問
私はここに私の問題だ...検索してみました多くのことを、私はしたいと私はそれを達成することはできません。
class Moving < ActiveRecord::Base
has_many :movingresources, :dependent => :destroy
has_many :resources, :through => :movingresources
end
class Movingresource < ActiveRecord::Base
belongs_to :moving
belongs_to :resource
end
class Resource < ActiveRecord::Base
has_many :movingresources
has_many :movings, :through => :movingresources
end
Movingresources
はquantity
のような追加のフィールドが含まれています。私たちは、「法案」の見解に取り組んでいます。 formtasticのおかげだけで書き込むことによって、全体の関係のことを簡単にするために、
<%= form.input :workers, :as => :check_boxes %>
と私は本当の素敵なチェックボックスのリストを取得します。しかし、私がこれまでに判明していないことである。そのモデルからどのようにi「はmovingresource」から追加フィールドを使用することができ、次の各チェックボックスの下の私の目的のフィールド
? form.inputs部分にするため、またはではない:Iは主に手動でオブジェクトの配列をループして、適切なフォームを作成、使用して、異なるアプローチを見ました。しかし、これらのソリューションのどれもきれいではなかった(必要なオブジェクトを構築または生成し、それらを生成していなかったので、例えば混乱を引き起こした編集ビューのためではなく、新しいのために働いていた)。
私はこのためにあなたの解決策を知りたい!
解決
さて、私はaccepts_nested_attributes_forの革命を逃し、それは本当に働いていない理由は、これは説明します。
これは私を得、さらに大きな一歩が、私は、私はまだ私の複雑な関係を持ついくつかの合併症を持つことになりますどこかと思います^ _ ^
class Moving < ActiveRecord::Base
has_many :movingworkers, :dependent => :destroy
has_many :workers, :through => :movingworkers
accepts_nested_attributes_for :movingworkers
end
<% form.inputs :for => :movingworkers do |movingworker| %>
<%= movingworker.inputs :worker, :quantity %>
<% end %>
他のヒント
Formtastic者:label_methodオプションのかもしれないのヘルプ。例えばます。
<%= form.input :movingworkers, :label_method => :worker %>
または
<%= form.input :movingworkers, :label_method => Proc.new { |x| "#{x.worker} #{x.quantity}" } %>
、あなただけのテストすることができますが、缶に部分的にラップしている場合は、新しい(の new_record?の)とフィールドの異なるセットを(存在する場合)非常にきれいなアプローチである。