【问题标题】:About validation in rails 4关于 Rails 4 中的验证
【发布时间】:2016-04-27 14:24:01
【问题描述】:

我在使用模态弹出窗口进行验证时遇到问题。这是我的index.html.haml

.container-index %h1 所有帖子都在这里 %button.btn.btn-info(type="button" data-toggle="modal" data-target="#myModal") 新帖 = 渲染“表格” - @posts.each 做 |post| .col-md-4 %h3= 链接到 post.title,post %p=post.content = "#{time_ago_in_words post.created_at} 前"

_form.html.haml:

。容器 = simple_form_for current_user.posts.build 做 |f| %div.modal.fade#myModal(tabindex="-1" role="dialog" aria-labelledby="myModalLabel") %div.modal-dialog(role="document") %div.modal 内容 %div.modal-header %button.close(type="button" data-dismiss="modal" aria-label="Close") %span(aria-hidden="true") × %h3.modal-title#myModalLabel 新帖子 %div.modal-body = f.input :title, label:"Title",class:'form-group',name: 'title' = f.input :content, label:'Content',class:'form-group',name:'content' %div.modal-footer %button.btn.btn-danger#mynewpostclose(type="button" data-dismiss="modal") 关闭 = f.submit '创建',类:“btn btn-primary”

post.rb:

验证:标题,存在:真 验证:内容,存在:真

posts_controller.rb:

before_action :find_post,仅:[:show, :edit, :update, :destroy] before_action :authenticate_user!,除了:[:index, :show] 定义索引 @posts = Post.all.order("created_at DESC") 结尾 定义新 @post = current_user.posts.build 结尾 定义创建 @post = current_user.posts.build(post_params) 如果@post.save redirect_to @post,注意:“创建成功” 别的 渲染“新” 结尾 结尾 定义显示 结尾 定义编辑 结尾 定义更新 如果@post.update(post_params) redirect_to @post,注意:“更新成功” 别的 渲染“编辑” 结尾 结尾 定义破坏 @post.destroy redirect_to posts_path(@post),注意:'删除成功' 结尾 私人的 def find_post @post = Post.find(params[:id]) 结尾 def post_params params.require(:post).permit(:title, :content) 结尾

我不知道如何显示警告
当我创建没有任何标题或内容的新帖子时
它将链接到空白页面并且不创建任何新帖子
我只是想在提交时在模态中调用警告,任何人都可以帮助我,plzz?

【问题讨论】:

  • 我认为你应该在 simple_form_for .... remote: true 中使用 JavaScript,在 JS 中你将能够添加错误
  • 你能清楚一点吗,plzz?我以前从来没有用过这种方式

标签: ruby-on-rails-4


【解决方案1】:

在您的表单中,您需要替换此行

= simple_form_for current_user.posts.build do |f|

有了这个;

= simple_form_for @post do |f|

这样,当您的创建操作呈现new 模板时,表单将获得保存失败的 Post 实例,从而允许简单表单显示错误消息。

【讨论】:

  • 我试过了,但它显示一个错误:“未定义的方法 `model_name' for nil:NilClass”。对我有什么建议吗?
  • 你的 new.html.haml 视图是什么样的?
  • = link_to 'Home', root_path, class: 'btn btn-info' %h1 New Post = render 'form' 我不会像你这样写评论
  • 好的,我最后的建议是尝试用这一行替换它:= simple_form_for [current_user, @post] do |f|
  • 也没有用,唯一的运行是:= simple_form_for current_user.post.build do |f| .
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
  • 2014-10-25
相关资源
最近更新 更多