![](/img/trans.png)
[英]Rails 3: Why the field with error is not wrapped with “field_with_errors” div when validation fails?
[英]html tags rendered for nested association doesn't get wrapped in field_with_errors div
Rails 5.1.4,ruby:2.3.7
我有一個父模型和子模型的嵌套表單,並在父模型的范圍內驗證了子模型中標簽的唯一性。 問題是,當我在兩個表單中提交具有相同名稱的表單時,沒有一個被包裹在field_with_errors類中。 我需要將html標簽包裝在該類中,以便隨后可以使用bootstrap 4 invalid-feedback和無效的CSS類在表單上呈現錯誤。
如何使用field_with_errors div包裹dashboard_label的text_field來呈現表單?
這些模型如下:
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被重置為其原始值。
問題是,帶有功能字段的視圖從數據庫中加載數據,我猜想並使用下面的視圖代碼中的條件解決了覆蓋項目對象上瞬態錯誤的問題。
<%= f.fields_for :study_media_files do |media_form| %>
<% if media_form.object.duration > 0 %>
<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' %>
</div>
<div class="col-2 float-right">
<%= media_form.check_box :show, { class: 'form-check-input ml-2' } %>
</div>
</div>
<% end %>
<% end %>
本質上是將fields_for塊上的集合移動到該塊內的條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.