bas*_*eck 1 ruby-on-rails ruby-on-rails-3 simple-form
这是我的表格:
= simple_form_for [@post, @comment] do |f|
= f.input :text, :label => false
= f.button :submit
Run Code Online (Sandbox Code Playgroud)
注释嵌套在帖子资源中.评论验证:validates :text, :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
Run Code Online (Sandbox Code Playgroud)
表单本身工作正常.如果我输入超过5个字符,则会创建注释.但如果它更少,我只是被重定向到posts#show并且表单中没有验证错误(我已经检查了源代码).
我也尝试填写设计注册表,如果失败,我可以看到错误.
我猜问题是由重定向引起的.但无论如何,我不知道如何解决它.
如果您重定向用户,则错误将丢失,除非您的应用程序以某种方式记住它们.解决此问题有两种可能性:
不要重定向用户,只是用于render显示包含错误消息的视图.例如,那就是Devise所做的.
重定向用户,但以某种方式传输错误消息.有很多方法可以做到这一点,例如通过在flash中将它们保存为简单字符串或某种序列化形式.但这通常更复杂,只有在需要重定向时才应该这样做.
| 归档时间: |
|
| 查看次数: |
3544 次 |
| 最近记录: |