我在Rails应用程序中使用的编辑配置文件视图中使用的Collection_Select遇到了一个奇怪的问题。数据库正在使用正确的值进行更新,但是当用户使用编辑其配置文件时,未选择默认值。我无法获得:include_blank => true或a:提示=> true也可以工作。

这是代码

编辑视图:

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

我尝试添加该行进行编辑,但不会影响任何内容。此问题也非常奇怪的是,编辑表单中的所有其他字段部分都填充了数据库中的正确电流值。此外,用户表确实具有课程_ID列,该列是课程表的外键,我已经检查了控制台中的关联,并且确实返回了正确的课程_id。关联之所以适当设置,是因为我有了我相信我的collection_select语法有问题,但我不确定它是什么。

感谢任何帮助。

谢谢。

有帮助吗?

解决方案

由于某种原因,我将Course_ID设置为VARCHAR,而不是数据库中的INT。更改它也解决了问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top