2010-12-13 2 views
3

fields_forに追加のコレクションを使いたいと思います。このコレクションはfields_forで使用されるすべての可能性を保持する必要があります。rails:fields_forとコレクション

私は、同じ日に毎週定期的に起こるタスクを持つ人がいると言います。人のフォームでは、まだ保存されているタスクがない場合でも、毎日のエントリが必要です。私は試しました:

ここで、毎日その日のタスクの名前を入力するテキストフィールドが必要です。たとえばweekday.name = "monday"とtask.name = "drink coffee"、task.weekday_id = 1

+0

あなたが何を求めているのかよく分かりません。あなたが理解していないエラーが出ていますか?あなたが何かを実装する方法を尋ねているのであれば、より具体的にするか、または明確にすることができます。 – Samo

+0

あなたは実際に@weekdaysに、あなたが記述したデフォルトの開始データを入力しましたか? –

+0

2つのもの、1つの 'weekday'は値を持つようには見えません。' task_fields.object.name'を使うことができます.2つはドキュメントが間違っていると思います。 fields_for'です。調査中... – Kris

答えて

0

あなたはweek_daysまで繰り返していません。私は完全にこの答えを台無しだと思う7月30日

weekday.id

編集]を使用すると、表「平日」を持っている場合は、

<% @weekdays.each_with_index do |weekday, i| %> 
    <% f.fields_for :tasks do |task_fields| %> 
    <%= weekday.name %>: 
    <%= task_fields.text_field :name %> 
    <%= task_fields.hidden_field :weekday_id, :value => (i + 1) %> 
    <% end %> 
<% end %> 

そしてhidden_​​field値は次のようになります。あなたは次のように行う必要があります。私はそれを改善しようとしましょう。

<% f.fields_for :tasks, @weekdays do |task_fields| %> 
    <%= weekday = task_fields.object %> 
    <%= weekday.name %>: 
    <%= task_fields.text_field :name %> 
    <%= task_fields.hidden_field :weekday_id, :value => weekday.id %> 
<% end %> 
+15

文書によれば、OPが実行しようとしていたときに 'fields_for'への第2引数としてコレクションを指定することが可能でなければならないことに注意してください。私の経験では、それは壊れているようです。 'foo_fields.text_field:name'のようなヘルパーを使用しようとすると、' 'の 'undefined method' name 'のような例外が発生します。 –

+0

やや間違っています。 A)は、反復されるコレクションを定義する第2パラメータをサポートしています。さらにB重要なことは、フォーム要素を使用するときにHTML属性名が各子オブジェクトの 'id'で確実に生成されるようにすることです。ラジオボタンとそのようなものです(例えば 'person [tasks] [1] [:field_name]')。 最後に、この質問に直接関連するものではなく、関連性があります。親モデルに 'accepts_nested_attributes_for:'を必ず含めてください。さもなければ、それは明らかな方法で失敗することはありませんが、あなたはあなたの髪を引き出すままになります。 – user2490003

+0

正直言って、私はこの答えの質問のポイントを完全に逃したと思うし、ひどく間違っていた:D – rubyprince

関連する問題