Отображение ошибок проверки в представлениях - PullRequest
0 голосов
/ 19 марта 2019

Я хочу добавить комментарии к книгам (комментарии принадлежат книгам), поэтому я добавил эту форму, чтобы показать страницу книг:

%h3 Add a comment:
= form_with(model: [ @book, @book.comments.build ], local: true) do |form|
  %p
    = form.text_area :content
  %p
    = form.submit "Add a comment"

Это работает, но мне нужно отобразить ошибку проверки модели для пустогоКомментарии.Я пытался с:

  - if  @book.errors.any?
    %h2
      = pluralize(@book.errors.count, "error")
      prohibited this article from being saved:
    %ul
      - @book.errors.full_messages.each do |msg|
        %li= msg

(после строки "form_with"), но ничего не происходит.Я думаю, что @ book.errors не так, но понятия не имею, как его заменить.

Метод создания контроллера моих комментариев:

  def create
    @book = Book.find(params[:book_id])
    @comment = @book.comments.create(comment_params)
    @comment.user = current_user
    if @comment.save
    redirect_to book_path(@book)
   end
  end

1 Ответ

0 голосов
/ 19 марта 2019

1> comments_controller.rb

  def create
    @book = Book.find(params[:book_id])
    @comment = @book.comments.create(comment_params)
    @comment.user = current_user
    if @comment.save
      redirect_to book_path(@book)
    else
      redirect_back(fallback_location: book_path(@book))
    end
  end

2> Заменить @book на @comment, поскольку объект @comment содержит проверки erros

  - if  @comment.errors.any?
    %h2
      = pluralize(@comment.errors.count, "error")
      prohibited this article from being saved:
    %ul
      - @comment.errors.full_messages.each do |msg|
        %li= msg
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...