2010-08-13 167 views
0

我在使用我的rails應用程序中的編輯配置文件視圖中的collection_select時出現了一個奇怪的問題。數據庫IS正在使用正確的值進行更新,但是當用戶編輯其配置文件時,不會爲選擇框選擇默認值。我無法得到a:include_blank => true或a:prompt => true。Collection_Select默認值未設置

下面是代碼

編輯觀點:

<%= render :partial => 'player_form' %> 

_player_form部分:

<% form_for @user do |f| %> 
    <p> 
     <%= f.label :course_id %><br/> 
     <%= f.collection_select(:course_id, Course.all, :id, :name, {:prompt => "No Home Course"}) %> 
    </p> 
<% end %> 

生成的HTML:

<p> 
    <label for="user_course_id">Course</label><br/> 
<select id="user_course_id" name="user[course_id]"> 
     <option value="1">Bedford Springs</option> 
     <option value="2">Down River</option> 
     <option value="3">King Valley </option> 
     <option value="4">Test</option></select> 
</p> 

因爲我使用的康康舞授權我在我的控制器中的空的編輯操作,因爲康康舞

@user = User.find(params[:id]) 

我已經嘗試添加該行編輯,並沒有造成任何影響自動初始化。此外,關於此問題的非常奇怪的事情是編輯表單部分中的所有其他字段都填充了來自數據庫的正確的當前值。此外,用戶表具有course_id列,這是Course表的外鍵,並且我已在控制檯中檢查了關聯,並確實返回了正確的course_id。關聯設置正確,因爲我有。因此,我相信我的collection_select的語法有問題,但我不確定它是什麼。

我很感激任何幫助。

謝謝。

+0

另外,在控制檯@ user.course_id中返回正確的值。我也可以在視圖中顯示@ user.course_id。 – dbaugh 2010-08-24 13:24:55

回答

2

由於某種原因,我將course_id設置爲varchar而不是數據庫中的int。改變它也是一個int修復了這個問題。