2012-09-20 42 views
0

考慮這些簡單的,提醒&事件模型:collection_select不顯示下拉列表中,是否有任何錯誤

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>標記。 View http://screencloud.net/img/screenshots/f990e124f356330a10839b00cd92f75a.png

我想要做的是在<options>中顯示Event.name。那麼我在這裏錯過了什麼?

[更新] 改爲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>標籤缺失的某些原因。

+0

這應該工作。檢查生成的html可能是一些風格被應用在它上面或檢查它的工作與否'form_for' – Salil

+0

測試使用'form_for'&標記附上。不知道我錯過了什麼:/ – CuriousMind

+0

奇怪,但我檢查我自己,它對我來說工作正常 – Salil

回答

0

我做錯了,該解決方案不需要accepts_nested_attributes_for。刪除它&問題解決了。

0

試試這個: collection_select(:事件:ID,Event.all,:ID,:名稱)

+0

嘗試但事件字段沒有顯示。任何其他想法? – CuriousMind