我有article
和comment
型号。
我想写这个:
= form_for ([@article, @article.comments.build]) do |f|
- if @article.comments.errors.any?
%h4 Errors
%ul
- @article.comments.errors.full_message do |message|
%li= message
但我得到错误:
未定义的方法`错误'对于 注释:: ActiveRecord_Associations_CollectionProxy:0x9a4a020
Article
有很多评论,comment
属于文章。
我想为评论显示验证错误。
编辑:
我的comment
型号:
class Comment < ActiveRecord::Base
belongs_to :article
validates :author, presence: true, length: { minimum: 3 }
validates :body, presence: true, length: { minimum: 5 }
end
答案 0 :(得分:1)
您无法在def new
@comment = @article.comments.build
end
def create
@comment = @article.comments.build
respond_to do |format|
if @comment.save
# handle save
else
format.html { render :new }
format.json { render json: @comment.errors, status: :unprocessable_entity }
end
end
end
等集合上调用错误。
在您的控制器中,为注释创建一个实例变量:
= form_for ([@article, @comment]) do |f|
- if @comment.errors.any?
%h4 Errors
%ul
- @comment.errors.full_message do |message|
%li= message
然后更新您的表单:
window.location.href