Collection_Select默认值未设置

时间:2010-08-13 22:22:07

标签: ruby-on-rails forms select authlogic cancan

我在rails应用程序的编辑配置文件视图中使用的collection_select有一个奇怪的问题。正在使用正确的值更新数据库,但是当用户编辑其配置文件时,不会为选择框选择默认值。我不能得到:include_blank => true或a:prompt =>是真的工作。

这是代码

修改视图:

<%= 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> 

因为我使用cancan进行授权,所以我的控制器中有一个空的编辑操作,因为cancan会自动初始化

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

我尝试添加该行进行编辑,但不会影响任何内容。此问题的另一个奇怪之处在于,编辑表单部分中的所有其他字段都填充了数据库中的正确当前值。另外,Users表确实有course_id列,它是Courses表的外键,我在控制台中检查了关联,它确实返回了正确的course_id。关联设置正确,因为我有。因此,我相信我的collection_select的语法有问题,但我不确定它是什么。

我感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:2)

由于某种原因,我将course_id设置为varchar而不是数据库中的int。更改它也是一个int修复了问题。