Rails 5.1.4, ruby: 2.3.7
У меня есть вложенная форма для родительской модели и дочерней модели с проверкой уникальности метки в дочерней модели в области действия родительской модели.,Проблема заключается в том, что, когда я отправляю форму с одинаковыми именами в обеих формах, они не включаются в класс field_with_errors.Мне нужно, чтобы тег html был помещен в этот класс, чтобы впоследствии я мог отображать ошибки в форме, используя начальную загрузку 4 invalid-feedback и недопустимые классы css.
Как я могу отрисовать форму с помощью field_with_errors div, обертывающего текстовое поле для dashboard_label?
Модели следующие:
class Project < ApplicationRecord
has_many :study_media_files
end
class StudyMediaFile < ApplicationRecord
belongs_to :project
validates :dashboard_label, uniqueness: { scope: :project }
end
Код контроллера выглядит следующим образом:
class DsasController < ApplicationController
def show
@project = Mrcore::Project.find params[:id]
end
def update
@project = Mrcore::Project.find params[:id]
if(@project.update project_params)
redirect_to @project, notice: 'updated successfully'
else
render 'show'
end
end
private
def project_params
params.require(:project).permit(study_media_files_attributes: %i[id dashboard_label show])
end
end
Представление:
<%= f.fields_for :study_media_files, @project.study_media_files.non_zero_duration do |media_form| %>
<div class="row ">
<div class="col-4 small">
<%= media_form.object.affdex_movie_id %>
</div>
<div class="col-5">
<%= media_form.text_field :dashboard_label, class: 'input-sm col-lg form-control', required: true %>
</div>
<div class="col-2 float-right">
<%= media_form.check_box :show, { class: 'form-check-input ml-2' } %>
</div>
</div>
<% end %>
По какой-то причине dashboard_label объекта возвращается к исходному значению.