1

ROR アプリケーションを作成しました。次に、Devise 機能を実装する必要があります。ユーザーデータを使用した既存のログインがあるため、devise Sign_in 、 sign_up などのビューを使用したくありません。どうすればこれを達成できるかについての提案

4

1 に答える 1

2

最も簡単な方法は、新しいビューを生成し、古いビューからスタイルとマークアップを追加してカスタマイズすることです。

または、サンプル アプリを参照して、必要なフォームを既存のビューにコピーします。次に例を示します。

サインインページ (新しいセッション) の場合、devise はこのコードを生成します

app/views/devise/sessions/new.html.erb

<h2>Sign in</h2>

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
  <div><%= f.label :email %><br />
  <%= f.email_field :email %></div>

  <div><%= f.label :password %><br />
  <%= f.password_field :password %></div>

  <% if devise_mapping.rememberable? -%>
    <div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
  <% end -%>

  <div><%= f.submit "Sign in" %></div>
<% end %>

<%= render "devise/shared/links" %>

したがって、最良のオプションは、それらを生成し、ビュー内のコードをdeviseによって生成されたものにコピーするか、deviseによって生成されたコードをビューにコピーすることです(デフォルトのdeviseルーティングを保持するため、最初のオプションの方が優れています)。デバイスコントローラーをカスタムビューにマップする必要はありません。

古いビューを本当に使用する必要がある場合は、対応するフォームとフィールドを追加し、devise コントローラーを対応するビューにマップします。この方法はより複雑ですが、実行できます。https ://github.com/plataformatec を参照してください詳細については、 /devise#configuring-controllersを参照してください。

于 2013-01-07T06:20:23.890 に答える