如何显示错误消息?
/vIEw/devise/passwords/new.HTML.erb
...<%= form_for(resource,:as => resource_name,:url => password_path(resource_name),:HTML => { :method => :post }) do |f| %> <h1>reset Password</h1> <div > <p>Instructions on resetting your password will be emailed to you.</p> <%= render :partial => '/shared/messages' %> <div > <%= f.label :email %> <%= f.email_fIEld :email,:placeholder => 'Email',:class => 'login username-fIEld' %> </div> <!-- /fIEld --> </div> <!-- /login-fIElds --> <div > <%= content_tag(:button,:type=>:submit,:class => "button btn btn-secondary btn-large") do %> Send me reset password instructions <% end %> </div> <!-- .actions --> <div > <%= render "devise/shared/links" %> </div><% end %>...
/vIEws/shared/_messages.HTML.erb
<% if alert || flash[:alert] || flash[:error] %> <div > <a data-dismiss="alert" href="#">x</a> <h4 >Error!</h4> <%= alert %> <%= flash[:error] %> </div><% end %><% if flash[:success] || notice || flash[:notice]%> <div > <a data-dismiss="alert" href="#">x</a> <h4 >Success!</h4> <%= flash[:success] %> <%= notice %> </div><% end %>解决方法 在您的共享消息部分中,您只显示来自控制器的错误.您需要包含附加到模型的错误.在这种情况下,错误消息将附加到用户模型.你/vIEws/shared/_messages.HTML.erb应该看起来像:
<% if alert || flash[:alert] || flash[:error] %> <div > <a data-dismiss="alert" href="#">x</a> <h4 >Error!</h4> <%= alert %> <%= flash[:error] %> </div><% end %><% if model.errors.any? %> <div > <a data-dismiss="alert" href="#">x</a> <h4 >Error!</h4> <ul> <% model.errors.full_messages.each do |msg| %> <li>* <%= msg %></li> <% end %> </ul> </div><% end %><% if flash[:success] || notice || flash[:notice]%> <div > <a data-dismiss="alert" href="#">x</a> <h4 >Success!</h4> <%= flash[:success] %> <%= notice %> </div><% end %>
在渲染局部时,您需要传入模型.
<%= render '/shared/messages',model: resource %>总结
以上是内存溢出为你收集整理的ruby-on-rails – 设计 – 如果数据库中不存在该电子邮件,则忘记密码不显示错误消息全部内容,希望文章能够帮你解决ruby-on-rails – 设计 – 如果数据库中不存在该电子邮件,则忘记密码不显示错误消息所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)