У меня странная проблема с collection_select, который я использую в представлении редактирования профиля в моем приложении rails. База данных обновляется с правильным значением, однако значение по умолчанию не выбирается для поля выбора, когда пользователь переходит к редактированию своего профиля. Я не могу заставить работать: include_blank => true или a: 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 есть столбец course_id, который является внешним ключом для таблицы Courses, и я проверил связь в консоли, и она возвращает правильный course_id. Связи настроены правильно, потому что у меня есть Поэтому я считаю, что у меня проблема с синтаксисом моего collection_select, но я не уверен, что это такое.
Я ценю любую помощь.
Спасибо.