Поскольку вы находитесь на странице назначений, вы можете получить там идентификатор и просто передать его как часть формы
<%= form_with model: @submission do |form| %>
<%= form.text_field :assignment_id, value: @assignment.id, class: 'hidden' %>
<div class="field">
<%= form.label :content %>
<%= form.rich_text_area :content %>
</div>
<div class="form-group" id="submitbutton">
<div align = "center">
<%= form.submit class: "btn waves-effect waves-light" %>
</div>
</div>
<% end %>
Если поле отображается, то вам нужно добавить правило css в заставить hidden
класс сделать display:none;
. Это будет go в вашей таблице стилей для всего сайта.
.hidden {display:none;}
У вас нет доступа к params[:id]
страницы в SubmssionsController, поэтому вы получаете эту ошибку. Удалите строку, пытаясь найти ее.
def create
@submission = Submission.new
@submission.user_id = current_user.id
if @submission.save
flash[:success] = "The submission was successfully submitted."
redirect_to units_path
else
flash[:success] = "Submission was not submitted correctly, please try again."
redirect_back(fallback_location: root_path)
end
end
И, поскольку я ее не вижу, убедитесь, что assignment_id
находится в списке разрешенных параметров для отправки.