2016-07-10 2 views
0

나는 현재이 오류를 수신하고있는 사용자를 찾을 수 없습니다 :루비는 'ID'= 1

ActiveRecord::RecordNotFound in MainController#index

나 자신에 의해 개최되었다 선호를 파괴 한 후.

class Post < ActiveRecord::Base 
    enum status: [ :ps_normal, :ps_locked, :ps_blocked, :ps_protected ] 
    enum sortable: [ :school, :company, :date ] 

    validates :owner, presence: true 

    def owner_name 
    return self.get_owner.display_name; 
    end 

    def get_owner 
    return User.find(self.owner); 
    end 

    def readable? 
    return (self.status != :blocked) ? true : false; 
    end 
end 

업데이트 # 1

2.3.0 :001 > User.find(1) 
User Load (1.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 1]] 
ActiveRecord::RecordNotFound: Couldn't find User with 'id'=1 
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.6/lib/active_record/relation/finder_methods.rb:324:in `raise_record_not_found_exception!' 
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.6/lib/active_record/relation/finder_methods.rb:444:in `find_one' 
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.6/lib/active_record/relation/finder_methods.rb:423:in `find_with_ids' 
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.6/lib/active_record/relation/finder_methods.rb:71:in `find' 
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.6/lib/active_record/querying.rb:3:in `find' 
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.6/lib/active_record/core.rb:131:in `find' 
    from (irb):1 
    from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.6/lib/rails/commands/console.rb:110:in `start' 
    from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.6/lib/rails/commands/console.rb:9:in `start' 
    from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:68:in `console' 
    from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
    from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.6/lib/rails/commands.rb:17:in `<top (required)>' 
    from bin/rails:4:in `require' 
    from bin/rails:4:in `<main>' 

나는이 문제를 해결하는 방법 : 여기

Error:

ActiveRecord::RecordNotFound in MainController#index

Couldn't find User with 'id'=1

def get_owner 
    return User.find(self.owner); // LINE WITH ERROR 
end 

post.rb입니까? 사용자 ID = 1을 (를) 추가 하시겠습니까? 2

업데이트 # 나는 내 자신의 사용자 이름으로 내 자신의 환경 설정을 삭제하고이 오류를 받았다. 사람들은 id = 1이 누락되었다고 말하고 있지만 데이터베이스에 다시 추가하는 방법은 확실하지 않습니다.

+1

같은 환경에서 레일즈 콘솔을 열고'User.find (1)'의 출력을 확인할 수 있습니까? 오류에 따라'id = 1'을 가진 사용자가 데이터베이스에 없을 것입니다. – Lahiru

+0

당신은 무엇을 의미합니까 :'자신이 소유 한 환경 설정을 파괴 했습니까? ' – oreoluwa

+0

@Michael, 내 대답이 도움이되었다고 생각하면 (http://stackoverflow.com/help/someone-answers) [ '허용됨'(http://stackoverflow.com/help/)으로 표시하십시오. 답변 옆에있는 녹색 확인 표시를 클릭하여 회색으로 표시된 부분을 채우기로 전환하십시오. 이렇게하면 답을 찾지 못한 질문에 초점을 맞추는 데 도움이됩니다. – Lahiru

답변

1

콘솔 출력에 따라 ID가 1 인 사용자가 없습니다. 따라서 id=1으로 사용자가 필요하면 다음과 같이 할 수 있습니다.

먼저 삭제 된 사용자와 동일한 세부 정보를 가진 사용자를 만드십시오. 사용자가 성공적으로 생성 한 다음, 레일 콘솔로 이동 :

u = User.last 
# => #<User id: x, ...... > 
u.update_column(:id, 1) 

더 많은 정보를 원하시면 여기를 Rails API doc를 참조하십시오. 사용중인 Rails 버전에 따라 선택하십시오.