设计:如何在用户注册成功的主页上显示'signed_up_but_unconfirmed'?

时间:2013-04-10 09:39:26

标签: ruby-on-rails-3 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

我的sign_up表单是:

 <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>

如何在主页上收到此消息?

3 个答案:

答案 0 :(得分:2)

引用来自devise github页面:

  

请记住,如果登录,Devise会使用Flash消息让用户知道   成功或失败。 Devise希望您的应用程序可以打电话   “flash [:notice]”和“flash [:alert]”视情况而定。

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

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

将其添加到您的主页,将显示:通知闪光消息(如果有)。

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

答案 1 :(得分:1)

您需要在布局文件中添加警告处理程序,如下所示

<% if (notice and notice.length > 0) or (alert and alert.length > 0) %>
   <% if notice %>
      <%= notice %>
   <% end %>
   <% if alert %> 
       <%= alert %>
   <% end %>     
<% end %>

答案 2 :(得分:0)

通常在您自定义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

    OR

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

    def after_sign_up_path_for(resource) new_user_session_path end