34

次のシナリオでは、fields_forループ内のオブジェクトプロパティの値をチェックする必要があります。ループのようにfields_forループ内のオブジェクトフィールドの値を取得

<%= f.semantic_fields_for :review_details do |rd| %> 
    <%= rd.input :review_criteria_id, :as=>:hidden %> 
<% end %> 

:review_criteria_idを隠しフィールドとしてレンダリングが、私はそれが特定の条件であれば、いくつかのより多くの情報を印刷する必要があるシナリオを、持っています。どのようにループ内のreview_criteria_idの値を取得できますか。 私が使用:

rd.review_criteria_id 

をしかしrd以来formtasticオブジェクトであるので、私は:review_crieteria_idの値を取得できませんでした。

答えて

64

Formtasticは、Railsのコードに追加機能が追加されますが、次はあなたのために働く必要がありますので、既存の機能を奪うしません:

rd.object.review_criteria_id 

「オブジェクトは、」プレーンレールに使用することができますアクセスするためのヘルパーを形成基本的なバインドされたオブジェクトであり、Formtasticはこの規約を尊重します。

+0

私は、ビューをデバッグすることでこれを見つけることができると付け加えたいと思います。 'fields_for'ブロックの中にデバッグ文(この場合はbyebug)' <% byebug %> 'を追加すると、ビルダーオブジェクト自体にアクセスできます。次に、そのクラスに対して 'methods'を呼び出して調査を開始することができます。 – Tass

9

私はそれは、私が

rd.object.review_criteria_id 

objectを使用することができましたがfields_forループのデフォルトのラッパーオブジェクトです。

関連する問題