2012-02-21 9 views

Odpowiedz

43

Wklej to w home#index widoku kodu

<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 %></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 "links" %> 

i

def resource_name 
    :user 
    end 

    def resource_class 
    User 
    end 

    def resource 
    @resource ||= User.new 
    end 

    def devise_mapping 
    @devise_mapping ||= Devise.mappings[:user] 
    end 

w pliku Application Helper.
Jesteś dobry, aby przejść.

+0

Na ostatniej linii I musiał użyć '<% = renderuj" devise/shared/links "%>", w przeciwnym razie wszystko dobrze! –

+0

Dodaj także 'def resource_class User end' do' ApplicationHelper' –

+0

Polecam ręczne ustawienie identyfikatorów formularza i pól, aby były poprawne pod względem składni, gdy masz identyczne formularze na tej samej stronie (np. Gdy użytkownik jest zalogowany strona). –

-1

Oto wyjaśnienie od opracować How To: Display a custom sign_in form anywhere in your app

Inny przykład z form_for i delegowania do user_session_path:

<%= form_for(:user, :url => session_path(:user)) 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 %> 

umieściłem go w moim nowym widoku

Powiązane problemy