ruby on rails - How does devise know what table you want form data written to? -
here devise' 'sign up' view (new.html.erb).
<h2>sign up</h2> <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) |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" %> i have table called 'users' want data go. when make account on system, data written users table, , works perfectly. how devise know want data go 'users'?
though beginning grasp on rails, how symbols :password, :email, ect equate database input? devise' source code, rather rails?
when define:
devise_for :users you tell devise define devise::mapping instance.
when go users/sign_in devise mapping instance users part of url.
this mapping object used user instance:
def resource instance_variable_get(:"@#{resource_name}") end where resource_name mapping.name
you can check devisecontroller class uses mapping class in documentation
Comments
Post a Comment