Я новичок в Rails. Пока я читаю документацию и учебные пособия, я портирую простое производственное приложение на другой язык (Java, созданный с помощью GeneXus)
Я создаю систему отслеживания смен сотрудников, поэтому у меня есть две таблицы: пользователи и смены с этими ассоциациями
class User < ActiveRecord::Base
has_many :shifts
end
class Shift < ActiveRecord::Base
belongs_to :user
end
Я также добавил соответствующий user_id в модель смены при создании базы данных SQLite.
Моя проблема заключается в том, что при попытке вставить новую запись с помощью нового представления поле "user_id" неправильно проверяет любой действительный номер user_id, который я пытаюсь записать. Что я должен вставить в это поле? (В моем текущем запущенном приложении в Java это поле будет принимать значение user_id)
При попытке вставить любое значение в поле «пользователь» в представлении «сдвиги» я получаю следующую ошибку
Ожидается пользователь (# 63152640), получен
Строка (# 19315740)
Вот источник просмотра
new.html.erb
<h1>New shift</h1>
<%= render 'form' %>
<%= link_to 'Back', shifts_path %>
_form.html.erb
<%= form_for(@shift) do |f| %>
<% if @shift.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@shift.errors.count, "error") %> prohibited this shift from being saved:</h2>
<ul>
<% @shift.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :start %><br />
<%= f.datetime_select :start %>
</div>
<div class="field">
<%= f.label :end %><br />
<%= f.datetime_select :end %>
</div>
<div class="field">
<%= f.label :status %><br />
<%= f.text_field :status %>
</div>
<div class="field">
<%= f.label :user %><br />
<%= f.text_field :user %> //<-- What should I write here? User_id?
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
(Все это было создано с помощью строительных лесов)
Кроме того, новое действие в shifts_controller
def new
@shift = Shift.new
end