l 간단한 Rails 프로젝트를 만들려고합니다. 나는이 오류가있다 : NoMethodError : 정의되지 않은 메소드`delete 'for nil : NilClassNoMethodError : nil에 대해 정의되지 않은 메소드`delete ': 콘솔을 통해 데이터베이스에서 객체를 삭제하려고 할 때 NilClass
나는 수동으로 입력하는 영화로 데이터베이스를 만들고있다.
class CreateMovies < ActiveRecord::Migration
def change
create_table :movies do |t|
t.string :title
t.string :rating
t.decimal :total_gross
t.date :release_date
t.timestamps
end
end
end
내가 내 DB에 데이터를 추가 :
나는 다음과 같은 이주했다. 개체를 변수로 인스턴스화합니다. 내 데이터베이스에있는 특정 영화를 삭제하려고합니다. 파괴 및 삭제 방법을 사용하려고했지만 오류가 표시됩니다. 아무 기록도 그 쿼리에 대한 반환이 있었기 때문에
2.0.0-p247 :025 > puss_boots = Movie.find_by(title: 'Puss and boots')
Movie Load (0.2ms) SELECT "movies".* FROM "movies" WHERE "movies"."title" = 'Puss and boots' LIMIT 1
=> nil
2.0.0-p247 :026 > puss_boots.destroy
NoMethodError: undefined method `destroy' for nil:NilClass
from (irb):26
from /Users/jona/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start'
from /Users/jona/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start'
from /Users/jona/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.0/lib/rails/commands.rb:64:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
2.0.0-p247 :027 > puss_boots.delete
NoMethodError: undefined method `delete' for nil:NilClass
from (irb):27
from /Users/jona/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start'
from /Users/jona/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start'
from /Users/jona/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.0/lib/rails/commands.rb:64:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
일치하는 영화를 찾을 수 없습니다. 줄 025에 대한 응답을 보라 : 그것은'nil'이다. – colinm