Я новичок в 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)
Когда tryng вставить любое значение внутри поля «пользователь» в окне «сдвиги», я получаю следующую ошибку
Пользователь (# 63152640) ожидается, получил String (# 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
показать ваш источник просмотра – fl00r
будет делать, как только я получить домой – bruno077