rails ネストした子モデルのバリデーションの方法
やりたいこと
掲示板:コメントが1対多のような関係で、以下のような掲示板で、コメント欄が空白のまま投稿しようとすると、バリデーションエラーメッセージを表示したい。
設定
親モデル(Board)
カラム:title
has_many :comments, dependent: :destroy
子モデル(Comment)
カラム
board_id ##外部キー
user_name
content
belongs_to :board
validates :content, presence: true
view
%h2= t '.title'
= link_to "#{t '.back_to_index'}", boards_path
.thread-title
= @board.title
%hr
- @comments.each_with_index do |comment, i|
.field
= "#{i+1}"
= ":"
= comment.user_name
= comment.created_at.strftime("%Y-%m-%d %H:%M:%S")
- if current_user.id == comment.user_id
= link_to "#{t '.edit'}", edit_comment_path(comment)
= link_to "#{t '.delete'}", comment_path(comment), method: :delete
.field
= comment.content
%hr
= form_for([@board, @comment]) do |f|
= render 'shared/errors', object: @comment
.field
= f.label :"#{t '.content'}"
= f.text_area :content, rows: "5", class: "form-control"
= f.hidden_field :user_name, value:current_user.name
= f.hidden_field :board_id
.button-field
= f.submit "#{t '.create_comment'}", class: "btn btn-primary"
メッセージ表示view
- if object.errors.any?
#error_explanation.alert.alert-danger
%ul
- object.errors.full_messages.each do |msg|
%li= msg
質問
Commentモデルのcontentカラムにバリデーションをかけただけだと何も反応しませんでした。
メッセージ表示に渡すオブジェクトは、@commentでいいのかというのも疑問です。
この場合、バリデーションでメッセージを表示するには、どのような設定が必要でしょうか。