Railsアプリケーションのプロファイルの編集ビューで使用しているcollection_selectに奇妙な問題があります。データベースは正しい値で更新されていますが、ユーザーがプロファイルを編集しようとしたときに、選択ボックスのデフォルト値が選択されていません。:include_blank => trueまたは:prompt=>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])
その行を追加して編集しようとしましたが、何の影響もありません。また、この問題の非常に奇妙な点は、編集フォームの部分的な他のすべてのフィールドに、データベースからの正しい現在の値が入力されていることです。さらに、UsersテーブルにはCoursesテーブルの外部キーであるcourse_id列があり、コンソールで関連付けを確認したところ、正しいcourse_idが返されます。私が持っているので、関連付けは適切に設定されています。したがって、collection_selectの構文に問題があると思いますが、それが何であるかはわかりません。
助けていただければ幸いです。
ありがとう。