0

これらの単純なリマインダーとイベントモデルを検討してください。

class Event < ActiveRecord::Base
  has_many :reminders
end


class Reminder < ActiveRecord::Base
  belongs_to :event
  accepts_nested_attributes_for :event
end

今、私はreminders/new.html.haml次の方法でビューを構築しています:

%h2 Reminders
= form_for(@reminder, html: {class: "form-horizontal"}) do |f|
  = f.fields_for :event do |event|
    = event.collection_select :id, Event.all, :id, :name
  = f.text_field(:issue_date, class: "datepicker", data: {"date-format" =>"dd/mm/yyyy"}, 'date' => "#{Time.new.strftime("%d/%m/%Y")}")
  = f.text_field(:renewal_date, label:"Due Date", class: "datepicker", data: {'date-format' => 'dd/mm/yyyy', 'date' => "#{Time.new.strftime("%d/%m/%Y")}"})
  = f.submit

<options>このビューでは、タグ を除いたエラーやリマインダーはスローされません。http://screencloud.net/img/screenshots/f990e124f356330a10839b00cd92f75a.pngを表示

私がやりたいのは、に表示Event.nameすること<options>です。だから私はここで何が欠けていますか?

[更新]に変更され、form_for次のhtmlマークアップが生成されます

<form method="post" id="new_reminder" class="form-horizontal" action="/reminders" accept-charset="UTF-8"><div style="margin:0;padding:0;display:inline"><input type="hidden" value="✓" name="utf8"><input type="hidden" value="Yu7Qj4SW+GAMXx9dEL/ohjsqryEkxUXXGy+SHpN97hc=" name="authenticity_token"></div>

                <input type="text" size="30" name="reminder[issue_date]" id="reminder_issue_date" date="20/09/2012" data-date-format="dd/mm/yyyy" class="datepicker">
                <input type="text" size="30" name="reminder[renewal_date]" label="Due Date" id="reminder_renewal_date" data-date="20/09/2012" data-date-format="dd/mm/yyyy" class="datepicker">
                <input type="submit" value="Create Reminder" name="commit">
              </form>

<option>何らかの理由でタグが欠落していることに気付くかもしれません。

4

2 に答える 2

0

これを試してください:collection_select(:event、:id、Event.all、:id、:name)

于 2012-09-20T02:14:22.603 に答える
0

私はそれを間違ってやっていた、この解決策は必要ない accepts_nested_attributes_for。それを削除し、問題を解決しました。

于 2012-10-26T21:20:15.350 に答える