2017-12-27 5 views
-5

그래서 사용자 이름, 전자 메일 및 암호 (+ 암호 확인)를 입력하고 제출을 누르면 "사용자 이름을 비워 둘 수 없습니다."라는 메시지가 나타나고 사용자 이름을 명확하게 입력했습니다. 여기 사용자 이름을 비워 둘 수 없습니다.

이 내 registrations_controller 내 user.rb

class User < ActiveRecord::Base 
    validates :user_name, presence: true, length: { minimum: 4, maximum: 16 

    } 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 
end 


입니다 :

class RegistrationsController < Devise::RegistrationsController 

    private 

    def sign_up_params 
    params.require(:user).permit(:email, :user_name, :password, :password_confirmation) 
    end 

    def account_update_params 
    params.require(:user).permit(:email, :user_name, :password, :password_confirmation, :current_password) 
    end 
end 


다음과 같은 내 new.html.erb입니다

<h2>Sign up</h2> 

<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 
    <%= f.error_notification %> 

    <div class="form-inputs"> 
    <%= f.input :user_name %> 
    <%= f.input :email, required: true, autofocus: true %> 
    <%= f.input :password, required: true, hint: ("#{@minimum_password_length} characters minimum" if @minimum_password_length) %> 
    <%= f.input :password_confirmation, required: true %> 
    </div> 

    <div class="form-actions"> 
    <%= f.button :submit, "Sign up" %> 
    </div> 
<% end %> 

<%= render "devise/shared/links" %> 

add_username_to_us ers.rb (이전)

class AddUsernameToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :username, :string 
    add_index :users, :username, unique: true 
    end 
end 

게시해야하는 다른 사람이있는 경우 오류에 대해 더 자세히 알아 보려면 의견을 말하십시오. 또한, 나는 (적절하게 설치된) 보석을 가지고 있고 클라우드 9 에디터를 사용하고 있음에 유의하십시오. 미리 감사드립니다! 실제로 테이블을 생성

class CreateAddUserNameToUsers < ActiveRecord::Migration 
    def change 
    create_table :add_user_name_to_users do |t| 
     t.string :user_name 

     t.timestamps null: false 
    end 
    end 
end 

add_user_name_to_users라고, 당신이 당신의 schema.rb 파일에서 찾을 수있다 : c9.io에 코드를 검토 할 때 당신의 마이그레이션이 파일이있는 곳

+0

것은 당신이 GitHub의에 코드가 있습니까? – jdgray

+0

@jdgray https://ide.c9.io/kingsong/instagram – iiRosie1

+0

당신은? – sam

답변

5

은 확실히 문제가있다. 따라서 User을 가입 양식으로 만들 때 User의 테이블에 존재하지 않으므로 user_name의 유효성을 검사 할 수 없습니다. 마이그레이션 파일 20171231162016_create_add_user_name_to_users.rb은 제거하려는 테이블이 아니기 때문에 제거해야합니다 (here은 마이그레이션 변경을위한 일부 문서 임).

대신 user_name을 가입/로그인 매개 변수 here에 추가하는 것과 관련하여이 문서를 따르시기 바랍니다.

users 테이블과 동일한 필드가있는 models 테이블도 있습니다 (여기가 우연히 여기에 배치되었다고 가정합니다.) 마이그레이션 결과가 오류 결과 중 하나 였는지 다시 확인하십시오 당신이보고있다.

+0

그래서 나는'20171231162016_create_add_user_name_to_users을 삭제 한 당신에게 여기 마이그레이션 파일을 표시 할 수 있습니다. rb'. 이제 마이 그 레이션을 변경하려면 문서를 확인해야합니다. – iiRosie1

+0

그 테이블을 삭제하거나 'user_name'을 (를) 사용자 테이블에 추가 할 수 있습니다. – jdgray

+0

실수로 링크했습니다. 잘못된 구름을 겪었습니다. 9. 내가 보낸 사람은 누이에 속합니다. 우리는 똑같은 일을하고 있습니다. https://ide.c9.io/kingsong/instagram-rose 그건 내 것입니다. 나는 그 문서들을 따라 갔다. 마이그레이션을 생성하고 마이그레이션했습니다. – iiRosie1

관련 문제