Ruby on rails 简单U形不';t显示一个特定表单的验证错误

Ruby on rails 简单U形不';t显示一个特定表单的验证错误,ruby-on-rails,ruby-on-rails-3,simple-form,Ruby On Rails,Ruby On Rails 3,Simple Form,这是我的表格: = simple_form_for [@post, @comment] do |f| = f.input :text, :label => false = f.button :submit 注释嵌套在POST资源中。注释验证:验证:文本,:length=>{:minimum=>5} 财务主任评论: def create @post = Post.find params[:game_id] comment = @post.comments.build :u

这是我的表格:

= simple_form_for [@post, @comment] do |f| 
  = f.input :text, :label => false
  = f.button :submit
注释嵌套在POST资源中。注释验证:
验证:文本,:length=>{:minimum=>5}

财务主任评论:

def create
  @post = Post.find params[:game_id]
  comment = @post.comments.build :user_id => current_user, :text => params[:comment][:text]

  comment.save
  redirect_to @post
end
表单本身运行良好。如果输入的字符超过5个,则会创建注释。但是如果更少,我只会被重定向到
posts#show
,表单中没有验证错误(我已经检查了源代码)

我也尝试过填写遗赠登记表,如果失败,我可以看到错误


我想问题是由重定向引起的。但无论如何,我不知道如何修复它。

如果重定向用户,错误将丢失,除非应用程序以某种方式记住它们。解决此问题有两种可能性:

  • 不要重定向用户,只需使用
    render
    显示包含错误消息的视图。例如,Desive就是这么做的

  • 确实要重定向用户,但要以某种方式传递错误消息。有很多方法可以做到这一点,例如将它们保存为简单字符串或以某种序列化形式保存在flash中。但这通常更复杂,只有在需要重定向时才应该执行


  • 如果重定向用户,则错误将丢失,除非应用程序以某种方式记住它们。解决此问题有两种可能性:

  • 不要重定向用户,只需使用
    render
    显示包含错误消息的视图。例如,Desive就是这么做的

  • 确实要重定向用户,但要以某种方式传递错误消息。有很多方法可以做到这一点,例如将它们保存为简单字符串或以某种序列化形式保存在flash中。但这通常更复杂,只有在需要重定向时才应该执行


  • 谢谢我不得不坚持第二种选择。这就是最终让我走的原因:谢谢。我不得不坚持第二种选择。这就是最终让我走的原因: