1

私はdeviseをインストールしました、それはうまく機能しています。しかし、デバイスメッセージで遊ぶ方法がわかりません。私はdevise wikiを調べましたが、取得できません。

ユーザーがサインアップに成功すると、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

devise github ページからの引用:

Devise はフラッシュ メッセージを使用して、サインインが成功したか失敗したかをユーザーに知らせることに注意してください。Devise は、アプリケーションが必要に応じて「flash[:notice]」と「flash[:alert]」を呼び出すことを想定しています。

登録コントローラーの create アクションは、flash[:notice] 内の devise.en からの signed_up_but_unconfirmed メッセージを設定し、リダイレクトします。リダイレクトされたページ (あなたの場合はホームページ) では、flash[:notice] にメッセージが表示され、それを表示する必要があります。

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

これをホームページに追加すると、:notice フラッシュ メッセージがあれば表示されます。

リダイレクトされたページに関係なく、デバイスコントローラーから設定されたフラッシュメッセージがユーザーに表示されるように、すべてのレイアウトでフラッシュメッセージを表示することをお勧めします。

于 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 に答える