我正在构建rails 4应用程序,但我遇到了障碍。当我进入登录页面并正确输入信息时,一切正常
如果我要登录但我没有输入其中一个必填字段(姓名,电子邮件等),则会显示一条错误消息“请查看以下问题:”但具体的错误消息,例如因为“电子邮件不能为空”不会显示。
在添加样式之前,错误显示错误..
代码在这里: https://github.com/mikejames386/Black-Fret 我目前在设计部门工作。
这是我第一次在stackoverflow上提出问题所以请告诉我是否还需要其他信息。
<div class="container">
<div id="form_container"><!-- start form_container -->
<h1>New Artist</h1>
<%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= f.error_notification %>
<h2>Artist or Band Name</h2>
<div class="form_section">
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<br class="clear_both"/>
</div> <!-- end form_section -->
<h2>Primary Contact</h2>
<div class="form_section">
<div class="field">
<%= f.label :primary_first_name, 'First Name'%>
<%= f.text_field :primary_first_name %>
</div>
<div class="field">
<%= f.label :primary_last_name, 'Last Name'%>
<%= f.text_field :primary_last_name %>
</div>
<div class="field">
<%= f.label :email, 'Email'%>
<%= f.text_field :email %>
</div>
<br class="clear_both"/>
</div> <!-- end form_section -->
<h2>Password</h2>
<div class="form_section">
<div class="field"><%= f.label :password %>
<%= f.password_field :password %></div>
<div class="field"><%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %>
</div>
<br class="clear_both"/>
</div>
<h2>Members</h2>
<div class="form_section">
<p>member multi-add goes here</p>
</div> <!-- end form_section -->
<%= f.submit "Add Artist", :class =>'btn btn-custom' %>
<% end %>
</div> <!-- end form_container -->
答案 0 :(得分:0)
我用我的应用程序在rails 4上设置了Devise,我实际上有一个Devise用户模型,一个注册控制器(你不需要)和一个Devise视图部分。您可能希望按照本教程https://github.com/plataformatec/devise进行操作,如果向下滚动一下,您将看到配置视图。下面的内容将放入您的用户模型中,而有效表格则用于验证电子邮件和密码,这可能就是为什么验证无法正常运行的原因。但我希望本教程能为您提供一些指导。
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
安装Devise并将其添加到Gemfile后,您需要运行生成器:
rails generate devise:install
安装Devise并将其添加到Gemfile后,您需要运行生成器: 生成器将安装一个初始化程序,它描述了所有Devise的配置选项,你必须看一下它。完成后,您就可以使用生成器将Devise添加到任何模型中:
rails生成设计模型
将MODEL替换为用于应用程序用户的类名,它通常是User,但也可以是Admin。这将创建一个模型(如果不存在)并使用默认的Devise模块进行配置。接下来,您通常会运行rake db:migrate,因为生成器将创建一个迁移文件(如果您的ORM支持它们)。此生成器还将config / routes.rb文件配置为指向Devise控制器。
配置视图
我们构建了Devise来帮助您快速开发使用身份验证的应用程序。但是,当您需要自定义时,我们不希望您这样做。
由于Devise是一个引擎,它的所有视图都打包在gem中。这些视图将帮助您入门,但一段时间后您可能想要更改它们。如果是这种情况,您只需要调用以下生成器,它就会将所有视图复制到您的应用程序中:
rails generate devise:views
答案 1 :(得分:0)
Devise
登录页面上的错误被添加为flash消息。
要捕获它们,请在app/views/layouts/application.html.erb
<% flash.each do |name, msg| %>
<%= content_tag :div, msg %>
<% end %>
根据设计文档
请记住,如果登录,Devise会使用Flash消息让用户知道 成功或失败。 Devise希望您的应用程序可以打电话 闪光[:通知]和闪光[:警告]视情况而定。不要打印 整个flash哈希,只打印特定的键。在某些情况下, Devise为闪存哈希添加了一个:timedout键,这不是意思 显示。如果您打算打印,请从哈希中删除此密钥 整个哈希。