2016-07-10 13 views
0

「ID」を持つユーザーが見つかりませんでした。ここでRUBYは、私は現在、このエラーが発生します= 1

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次のとおりです。

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 

UPDATE#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>' 

私はこれをどのように修正する必要がありますか?ユーザーID = 1を追加しますか?

アップデート#2

私は自分のユーザー名の下に自分の好みを削除し、私はこのエラーを受け取りました。人々はid = 1が不足していると言っていますが、データベースに追加する方法は不明です

+1

(同じ環境で)Railsコンソールを開き、 'User.find(1)'の出力を確認できますか?エラーの通り、おそらく 'id = 1'のユーザはあなたのデータベースに存在しません。 – Lahiru

+0

あなたはどういう意味ですか?「自分で抱いていた嗜好を破壊しました」 – oreoluwa

+0

@Michael、私の回答が[あなたの問題を解決した](http://stackoverflow.com/help/someone-answers)を助けてくれたと思うなら、それを '[accepted](http://stackoverflow.com/help/)としてマークしてください。答えの横にある緑色のチェックマークをクリックすると、グレーアウトから塗りつぶしに切り替わります。これはコミュニティが未回答の質問に焦点を当てるのに役立ちます。 – Lahiru

答えて

1

idは1のユーザーはいません。したがって、id=1のユーザーが必要な場合は、このようにすることができます。

まず、削除したユーザーと同じ詳細を持つユーザーを作成します。ユーザーが正常に作成された後、その後のRailsコンソールにアクセスし、:

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

は、詳細はこちらを Rails API docを参照してください。使用しているRailsのバージョンに従って選択します。

関連する問題