我有 2 个模型,如下所示
Class Post
has_many :comments, :dependent => :destroy
end
Class Comment
validates_presence_of :post
validates_presence_of :comment
belongs_to :post
end
在评论控制器中,
def create
comment = @post.comments.build(params[:comment])
if comment.save
// some code
else
// some code
end
end
当评论根据验证无效时,不会保存评论。但是当在视图中访问 @post 对象时,它包含一个带有 nil id 的评论对象。这在 Rails 2.3.11 中没有发生。我们升级到 Rails 3.1,然后现在升级到 Rails 3.2。当我执行@post.reload 时,这个带有 nil id 的评论对象消失了。我们正在使用 REE。
我试图交换构建和新方法。它的结果与构建相同。在我们的应用程序中发现了类似的行为。这是预期的行为还是我做错了什么?