2014-04-17 1 views
0

레일에 새 사용자를 만들려고합니다. 새 사용자 양식에는 사용자 이름, 전자 메일, 암호 및 암호 확인 필드가 있습니다. 웹 페이지에서 사용자 작성 단추를 누르면 new_user 양식이 새로 고쳐지고 사용자가 데이터베이스에 추가되지 않습니다.레일에 등록

<p>Sign Up</p> 
<%= form_for @user, :as => :user, :url => new_user_path, :method => :put do |f| %> 

<p> 
    <%= f.label 'username:' %><br/> 
    <%= f.text_field :username %> 
    <%= show_field_error(@user, :username) %> 
</p> 
<p> 
    <%= f.label 'email:' %><br/> 
    <%= f.text_field :email %> 
    <%= show_field_error(@user, :email) %> 
</p> 
<p> 
    <%= f.label 'password:' %><br/> 
    <%= f.password_field :password %> 
    <%= show_field_error(@user, :password) %> 
</p> 
<p> 
    <%= f.label 'password confirmation:' %><br/> 
    <%= f.password_field :password_confirmation %> 
    <%= show_field_error(@user, :password_confirmation) %> 
</p> 
<p> 
    <%= f.submit 'Sign Up' %>&nbsp;&nbsp;&nbsp; 
    <%= f.submit 'Clear Form', :type => 'reset' %> 
</p> 

이 사람이 바로 나를 가리킬 수 있습니다 여기에

이 내 NEW_USER하여 양식 인증 컨트롤러 내 등록 방법

def register 
    @user = User.new(params[:user]) 

    if @user.valid? 
    @user.save 
    session[:user_id] = @user.id 
    flash[:notice] = 'Welcome.' 
    redirect_to sign_in_url 
    else 
    render :action => "new_user" 
    end 

코드입니다 방향?

+0

은 라우트에 정의 된이 라우트입니다. 라우트 테이블로 qsn을 업데이트하십시오. – Bijendra

답변

0

양식의 new_user_path으로 전화하면 파일에 resources :users을 정의한 경우 User#new으로 URL을 참조합니다. 경로 파일에 register을 정의한 경우 new_user_pathregister_user_path으로 바꿔야합니다. 경로를 확인하려면 rake routes을 실행하십시오.

내가 볼 수 있듯이 등록 작업을 사용할 필요가 없습니다. 귀하의 논리가 직감에 뒤 따르기 때문에 RESTful 액션 new, create, index, show, edit, updatedestroy을 사용하는 것이 더 적절합니다. Rails는이 규칙을 쉽게 따르도록합니다. 자세한 내용은 라우팅 레일 가이드 here을 참조하십시오.