2

これがdeviseの「サインアップ」ビュー(new.html.erb)です。

<h2>Sign up</h2>

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>

  <div><%= f.label :email %><br />
  <%= f.email_field :email, :autofocus => true %></div>

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

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

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

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

データを移動する「users」というテーブルがあります。システムでアカウントを作成すると、データが users テーブルに書き込まれ、すべてが完全に機能します。しかし、データを「ユーザー」に送信したいことをどのように認識していますか?

私はレールを理解し始めていますが、記号 :password、:email などはデータベース入力とどのように一致するのでしょうか? これは Rails ではなく、devise のソース コードと関係がありますか?

4

1 に答える 1

1

定義する場合:

devise_for :users

インスタンスを定義するようにdeviseに指示しDevise::Mappingます。

users/sign_in工夫するときは、このマッピング インスタンスをusersURL の一部で取得します。

このマッピング オブジェクトは、Userインスタンスを取得するために使用されます。

def resource
  instance_variable_get(:"@#{resource_name}")
end

どこresource_nameですかmapping.name

ドキュメントDeviseControllerでクラスを使用するMappingクラスを確認できます

于 2013-05-20T03:13:19.373 に答える