2

这是设计的“注册”视图 (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" %>

我有一个名为“用户”的表,我希望将数据放在其中。当我在我的系统上创建一个帐户时,数据会写入我的用户表中,并且一切正常。但是设计如何知道我希望数据发送给“用户”?

虽然我开始掌握 Rails,但符号 :password、:email 等如何等同于数据库输入?这与设计的源代码有关,而不是与导轨有关吗?

4

1 回答 1

1

当你定义:

devise_for :users

你告诉设计定义一个Devise::Mapping实例。

当您去设计时,使用部分 URLusers/sign_in获取此映射实例。users

此映射对象用于获取User实例:

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

resource_name在哪里mapping.name

您可以检查在文档DeviseController中使用Mapping类的类

于 2013-05-20T03:13:19.373 回答