2016-11-07 5 views
1

Ruby on Rails에서 사용자 등록 양식에 문제가 있습니다. 이전에는 사용자 이름, 전자 메일 및 암호로 간단하게 작업했습니다. 그러나 이름, 성 및 우편 번호 필드를 추가하려고하면 모든 데이터가 데이터베이스에 삽입되는 것을 중지하고 등록 양식으로 다시 리디렉션됩니다.Ruby on Rails의 깨진 사용자 등록 양식

마이그레이션을 생성하고 db를 마이그레이션하는 올바른 방법을 사용했는데 여전히 양식이 작동하지 않았습니다.

그런 다음 데이터베이스를 완전히 삭제하고 포함 된 모든 필드를 사용하여 다시 만들었지 만 여전히 작동하지 않습니다. 올바른 필드가있는 데이터베이스가 올바르게 생성되었으며 연결이 끊어지는 위치를 잘 모릅니다.

저는 루비 2.3.1을 사용하고 있습니다.

사용자 컨트롤러 :

class UsersController < ApplicationController 

    def new 
    @user = User.new 
end 

def create 
    @user = User.new(user_params) 
    if @user.save 
    session[:user_id] = @user.id 
    redirect_to '/home' 
    else 
    redirect_to '/register' 
    end 
end 

private 
    def user_params 
    params.require(:user).permit(:username, :email, :password, :location, :fname, :lname) 
    end 

end 

사용자 모델 : 사용자의

class User < ApplicationRecord 

    has_secure_password 

end 

양식/새 :

<div class="container">  
    </div> 

<div id="contact" class="container-fluid bg-grey"> 

    <h2 class="text-center">Create An Account</h2> 
    <form> 

     <%= form_for(@user) do |f| %> 
     <%= f.text_field :username, :placeholder => "Username" %> 
     <%= f.email_field :email, :placeholder => "Email" %> 
     <%= f.password_field :password, :placeholder => "Password" %><br/><br/> 
     <%= f.text_field :fname, :placeholder => "First Name" %> 
     <%= f.text_field :lname, :placeholder => "Last Name" %> 
     <%= f.number_field :location, :placeholder => "ZIP Code (US Only)" %><br/><br/> 
     <%= f.submit "Create an Account", class: "btn-submit" %> 
    <% end %> 

</div> 

</ul> 
</nav> 
</body> 
</html> 

사용자 마이그레이션 만들기 :

class CreateUsers < ActiveRecord::Migration[5.0] 
    def change 
    create_table :users do |t| 
     t.string :username 
     t.string :email 
     t.string :password_digest 
     t.numeric :location 
     t.string :fname 
     t.string :lname 

     t.timestamps 
    end 
    end 
end 
을 로그에서3210

:

Started GET "/register?utf8=%E2%9C%93&authenticity_token=b6M1gpQx8BTLhBqjjh6R%2BlSGghcSh18Mg7eGskLGNyq11RBvGCX%2BOJjVhSLwwRmZunn1sYvV4MGHB7vrJw6Rhg%3D%3D&user%5Busername%5D=jsmith1&user%5Bemail%5D=jsmith%40email.com&user%5Bpassword%5D=[FILTERED]&user%5Bfname%5D=John&user%5Blname%5D=Smith&user%5Blocation%5D=60606&commit=Create+an+Account" for ::1 at 2016-11-07 15:14:50 -0600 
Processing by UsersController#new as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"b6M1gpQx8BTLhBqjjh6R+lSGghcSh18Mg7eGskLGNyq11RBvGCX+OJjVhSLwwRmZunn1sYvV4MGHB7vrJw6Rhg==", "user"=>{"username"=>"jsmith1", "email"=>"[email protected]", "password"=>"[FILTERED]", "fname"=>"John", "lname"=>"Smith", "location"=>"60606"}, "commit"=>"Create an Account"} 
    Rendering users/new.html.erb within layouts/application 
    Rendered users/new.html.erb within layouts/application (2.0ms) 
Completed 200 OK in 195ms (Views: 148.1ms | ActiveRecord: 21.5ms) 

) 
    Completed 200 OK in 760ms (Views: 714.8ms | ActiveRecord: 3.5ms) 

은 어떤 도움 정말 감사합니다.

+2

불행히도 "작동을 멈췄습니다"는 도움을 제공하기에 충분한 기술적 세부 사항이 부족합니다. 어떤 오류가 있습니까? 실제로는 어떻게됩니까? 큰 추측 게임을 건너 뛰는 것으로 실제로 도움이되는 사람들을보다 쉽게 ​​만들 수 있습니다. – MarsAtomic

+0

서버 로그를 게시 할 수 있습니까? – Monideep

+0

죄송합니다. 사용자를 저장하지 않고 데이터를 데이터베이스에 삽입하지 않고 등록 양식으로 돌아갑니다. – crackedact0r

답변

0

나는 그것을 알아 냈다. 추가 양식 태그가 양식 제출을 망치고있었습니다. 루비 양식 코드 위의 <form>을 제거하면 제대로 작동합니다. 응답 한 사람들에게 감사드립니다.