Я имею дело с этой устаревшей формой для создания нового разговора.Он имеет два поля: Имя и описание (первый комментарий к разговору)
Вот поля: _fields.haml
.conversation_title= f.label :name, t('.name')
.clear
= f.text_field :name, :style => 'width: 230px'
= errors_for f.object, :name
if f.object.new_record?
= f.fields_for :comments, f.object.comments.build do |comment_fields|
.conversation_title= comment_fields.label :description, t('.description')
= comment_fields.text_area :body, :placeholder => t("comments.new.conversation"), :style => 'width: 545px'
= errors_for f.object, :comments
из представления new
для разговоров
= form_for [@current_project, @conversation], :html => { 'data-project-id' => @current_project.id, :name => 'form_new_conversation', :multipart => true } do |f| #, :onsubmit => 'return validate_form_new_conversation(form_new_conversation)'
= render 'fields', :f => f, :project => @current_project
= render 'watcher_fields', :f => f, :project => @current_project
Связанные проверки:
conversation.rb
validates_presence_of :name, :message => :no_title, :unless => :simple?
validates_presence_of :comments, :message => :must_have_one, :unless => :is_importing
comment.rb
validates_presence_of :body, :unless => lambda { |c| c.task_comment? or c.uploads.to_a.any? or c.google_docs.any? }
По какой-то причине proc связан с полямис ошибкой от base.rb
@@field_error_proc = Proc.new{ |html_tag, instance| "<div class=\"field_with_errors\">#{html_tag}</div>".html_safe }
не вызывается для текстовой области, поэтому она не меняет свой стиль, чтобы она стала красной.Это для поля :name
.Сообщения об ошибках отображаются правильно
Чего мне не хватает?Спасибо!