Rails正确处理论坛系统上的验证,确保帖子包含文本。问题是如果验证失败,它会重定向到422而不是重新定向到新操作。以下是rails输出:
Completed 422 Unprocessable Entity in 156ms (Views: 143.4ms)
Mongoid::Errors::Validations (
message:
Validation of User failed.
summary:
The following errors were found: Mongoid forums posts is invalid
resolution:
Try persisting the document with valid data or remove the validations.):
app/decorators/mongoid_forums/controllers/application_controller_decorator.rb:7:in `update_current_user_time'
我尽力调试它。最终这就是它的表现(根据轨道输出):
@post = @topic.posts.build(post_params)
@post.user = mongoid_forums_user
if @post.save
@topic.alert_subscribers(mongoid_forums_user.id)
@topic.forum.increment_posts_count
flash[:notice] = t("mongoid_forums.post.created")
redirect_to @topic
else
flash.now.alert = t("mongoid_forums.post.not_created")
render :action => "new"
end
这种创建模型并保存模型的方法有什么特别的错误吗?我尝试了一些其他解决方案,例如将构建更改为创建或新建,然后设置字段。就我所见,它一直在渲染新的东西,但我没有得到表格。
最终,我想要的是,当用户尝试制作没有文字的帖子时,会将其重新定向回新的帖子表单,并显示闪存错误。