2010-08-13 108 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修复了这个问题。