2011-02-05 4 views
1

これは初心者の質問ですが、フィールドの内容をテキストボックス/エリアではなくラベルのように表示するフォームの構文は何ですか現れる。rails - 入れ子になったフォームの非入力型フィールドを表示するには

<% form_for @user do |f| %> 
    <% f.fields_for :user_ingreds do |builder| %> 
     <p> 
      <%= builder.??? %> 
     </p> 
    <% end %> 
<% end%> 

ユーザーhas_many :user_ingredsaccepts_nested_attributes_for :user_ingreds

基本的に私はuser_ingredsのリストを作成したいが、ユーザはデータを編集できないが、ボタンを使ってリストからレコードを削除することができる。

fields_forビルダーはUserIngredモデル(すなわち、builder.user_idをスローし、エラーのフィールドへの直接呼び出しを認識しませんが。

答えて

0

あなたはボタンでingredsの編集不可能なリストを作りたい場合、それらを削除するには、フォームを作成しない。その代わり

、あなたのデータとのlink_toとあなたの削除機能を指すで作成され、それらの横にあるボタンを表示する。

を今まであなたが本当にの内容を表示したい場合はフォーム変数には、次のようにアクセスできます。

builder.object.user_i 
+0

こんにちは、返信ありがとうございます。 私は、ユーザーがリストから削除し、最後に保存またはキャンセルできるようにしたいと思います。だから私は_destroyの隠されたフィールドでフォームが必要だと思った。 あなたは別の機能を提案していますが、ユーザーが最後までコミットしないと、どのレコードを削除するかの参照をどのように保持しますか?ありがとう! – nktokyo

+0

よろしくお願いします。http://railscasts.com/episodes/196-nested-model-form-part-1 – apneadiving

関連する問題