1

我已经安装了设计,它工作得很好。但我不知道如何使用设计消息。我浏览了设计维基,但我没有得到它。

当用户成功注册后,devise 只是重定向到主页,不显示任何内容。我检查了 devise.en.yml 并发现了这个:

 signed_up_but_unconfirmed: 'A message with a confirmation link has been sent to your email address. Please open the link to activate your account.'

希望在注册重定向的主页上显示此内容。

我的注册控制器是:

 class RegistrationsController < Devise::RegistrationsController

def new
    resource = build_resource({})
       resource.build_profile
       respond_with resource        
    end

 end

我的注册表单是:

 <div class = "form-signin">
  <h2 class="form-signin-heading">Please sign up</h2>
  <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>
   <%= f.email_field :email, :autofocus => true, :class => "input-block-level", :placeholder => "Email address"  %>
   <%= f.password_field :password, :class => "input-block-level", :placeholder => "Password" %>
   <%= f.password_field :password_confirmation, :class => "input-block-level", :placeholder => "Retype the password" %>
   <div><%= f.submit "Sign up", :class => "btn btn-large btn-primary"  %></div>
  <% end %>
  <%= render "devise/shared/links" %>
  </div>
  </div>

如何在主页上获取此消息?

4

3 回答 3

2

从设计 github 页面引用:

请记住,Devise 使用 Flash 消息让用户知道登录是成功还是失败。Devise 希望您的应用程序酌情调用“flash[:notice]”和“flash[:alert]”。

注册控制器的创建操作将在 flash[:notice] 中设置来自 devise.en 的 signed_up_but_unconfirmed 消息并重定向。在重定向页面上,在您的情况下是主页,您将在 flash[:notice] 中看到消息,并且必须显示该消息。

<%= flash[:notice] unless flash[:notice].blank?%>

将此添加到您的主页,将显示 :notice 闪存消息(如果有)。

我建议您在所有布局中显示 Flash 消息,以便从设计控制器设置的任何 Flash 消息都将显示给用户,而与重定向页面无关。

于 2013-04-10T09:55:01.463 回答
1

您需要像这样在布局文件中添加警报处理程序,

<% if (notice and notice.length > 0) or (alert and alert.length > 0) %>
   <% if notice %>
      <%= notice %>
   <% end %>
   <% if alert %> 
       <%= alert %>
   <% end %>     
<% end %>
于 2013-04-10T09:50:12.597 回答
1

这通常发生在您自定义 root_path 时,以下步骤将帮助您解决问题:

  1. 确保你有= flash[:notice]你的application.html.haml

  2. 覆盖注册控制器

    rails g devise:controllers users -c=registrations

  3. confirmable如果您在模型中使用模块,请取消注释 registratons_controller 中的以下方法,例如;

    def after_inactive_sign_up_path_for(resource) new_user_session_path end

    或者

    如果您不使用可确认模块,则仅使用 sing_up_path_for 方法。

    def after_sign_up_path_for(resource) new_user_session_path end

于 2018-09-27T13:33:47.883 回答