2012-02-11 29 views
18

Sử dụng ruby-1.9.2 và đường ray 3.2.1. Phiên bản của mysql2 là 0.2.7.Phương thức chưa xác định `chấp nhận 'cho nil: NilClass trên rake db: di chuyển

Khi chạy rake db: di chuyển tôi nhận được lỗi: "phương pháp xác định 'chấp nhận' cho nil: NilClass:"

vết bao gồm:

đá quý/activerecord-3.2.1/lib/active_record /connection_adapters/abstract/database_statements.rb:7:in `to_sql '

+0

Bạn đã từng thực hiện thành công rake db: di chuyển hay cài đặt mới này? Có lệnh nào khác hoạt động không? –

+0

Xin chào Marc, đây là bản cài đặt mới - nâng cấp lên 10.7 Mac OS X. Rake db: tạo hiệu quả. – vectran

+0

@vectran Bạn có khắc phục được sự cố này không? Tôi đang đối mặt với cùng một vấn đề bây giờ. – chhantyal

Trả lời

11

Ok, tôi đã sửa trên máy tính của mình. Điều này là do MySQL2 cũ hơn. Làm điều này để giải quyết vấn đề.

bundle update mysql2 

     Or 

bundle update 

Để biết thêm chi tiết chuyến thăm Github

+0

cảm ơn, đã làm việc cho tôi. – timeon

0

Bạn có được điều này nếu trong database.yaml bạn nộp bạn có:

dev: 
    adapter: mysql2 

Nó nên được (ngay cả khi bạn đang sử dụng đá quý là mysql2) :

dev: 
    adapter: mysql 

Mất hơn một tuần để hiểu điều này, tôi hy vọng nó giúp bạn tiết kiệm thời gian.

10

Đối với tôi bằng cách loại bỏ đá quý 'activerecord-mysql2-adapter' từ Gem tập tin làm việc ra

+0

Làm việc cho tôi khi nâng cấp từ Rails 3.0.3 lên Rails 3.2.8 – superluminary

+1

Thuốc đó chữa khỏi bệnh của tôi –

1

Cài đặt đá quý ruby ​​mysql2 mới nhất. environtment tôi:

Rails3.2.9 + mysql2 0.2.9, : "undefined method `accept' for nil:NilClass:" 
Rails3.2.9 + mysql2 0.3.11, works fine 
28

Thay đổi của bạn Gemfile từ:

gem 'activerecord-mysql2-adapter' 

tới:

gem 'mysql2' 
+0

Cảm ơn bạn. Có nó trong một! – MichelV69

+0

Điều đó cũng giải quyết được vấn đề của tôi! – n00b

+1

tại sao điều này xảy ra? – Maruccio

-1

Xác định:

def nil.accept 
    puts "Accepted." 
end 

Và lỗi sẽ biến mất.

1

Điều này có thể xảy ra do không tương thích với phiên bản mysqlruby của bạn.

Để giải quyết vấn đề này, hãy cập nhật đá quý mysql của bạn theo số gem install mysql sẽ cài đặt đá quý mysql mới nhất.

Sau đó thêm số này vào số Gemfile của bạn.

Nếu vẫn còn vấn đề tồn tại thì bạn sẽ thấy khả năng tương thích giữa ruby ​​và mysql

Các vấn đề liên quan