0

私はDeviseのファンであり、RubyonRailsアプリケーションの多くにDeviseを使用しています。

Deviseのインストールとカスタマイズについては、通常、以下のRailCastsに従います。

http://railscasts.com/episodes/209-introducing-devise

http://railscasts.com/episodes/210-customizing-devise

ビデオは、ビューをカスタマイズする場合は、以下のコマンドを実行する必要があることを示しています-

rails generate devise:views

これにより、認証に関連するビューがapps / views/deviseフォルダーに作成されます。ルックアンドフィールをカスタマイズできます。

私の質問は-サインインするために複数のビューを許可するにはどうすればよいですか?たとえば、ユーザーがルートページ自体からログインできるようにするには、ナビゲーションバーの[ログイン]ボタンをクリックして、ユーザーがログイン資格情報を入力する代わりに、モーダルボックス(オーバーレイ/ポップアップ)を表示できるようにします。 Deviseによって生成された事前定義されたページにアクセスする必要があります。

以下のリンクを見て、私が現在取り組んでいるプロジェクトを確認できます。

http://squilio.heroku.com/

ログインボタンをクリックしてみてください。ここにサインインフォームが欲しいのですが。

4

2 に答える 2

1

あなたが見たrailscastエピソードは古すぎます(2010年4月12日)、最新のDeviseバージョンは2.0です。そのため、一部の機能は廃止されたと思います。

あなたの質問のために:あなたが2つの異なるページを持ちたい場合(例えば、1つはajaxによるダイアログ/ポップアップ、もう1つは通常のerbページです)、2つの異なるアクションを実装する必要があります、または少なくとも2つの異なる戦略を実装する必要があります彼ら。例えば

# will render app/views/.../regular_login.html.erb
def regular_login
end 

# render a dialog box only.
def dialog_login
  render :layout => false
end 
于 2012-04-19T06:24:26.997 に答える
1

私はこの記事からエレガントな解決策を見つけました..

https://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app

これは、form_forを使用してuser_session_pathに投稿することでこれを実現する方法を示しています。

<%= form_for("user", :url => user_session_path) do |f| %>
  <%= f.text_field :email %>
  <%= f.password_field :password %>
  <%= f.check_box :remember_me %>
  <%= f.label :remember_me %>
  <%= f.submit 'Sign in' %>
  <%= link_to "Forgot your password?", new_password_path('user') %>
<% end %>
于 2012-04-19T07:48:42.463 に答える