Reputation: 2245
I know that was a million times here but tried everything and I am still getting this error:
$ rake db:migrate
rake aborted!
undefined method `accept' for nil:NilClass
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
This is the gem list (not all):
activemodel (3.2.8)
activerecord (3.2.8)
activerecord-mysql2-adapter (0.0.3)
builder (3.1.3, 3.0.3)
bundler (1.2.1)
mysql2 (0.3.2)
rails (3.2.8)
rails_apps_composer (2.2.10)
railties (3.2.8)
rake (0.9.2.2)
rdoc (3.12)
sqlite3 (1.3.6)
therubyracer (0.10.2)
thor (0.16.0)
tilt (1.3.3)
treetop (1.4.10)
twitter-bootstrap-rails (2.1.3)
tzinfo (0.3.33)
uglifier (1.3.0)
I have tried with all versions of mysql2 (from 0.2.7 to 0.3.2)
Edit (database file):
development:
adapter: mysql2
database: tripwall
username: root
password: pass
host: localhost
pool: 5
timeout: 5000
Upvotes: 13
Views: 12404
Reputation: 4930
In addition to the earlier solutions mentioned:
It turned out there was simultaneously an older mysql2 gem installed, subtly throwing off my Rails app:
gem list
mysql2 (0.2.2, 0.3.17)
gem uninstall mysql --version=0.2.2
Finally after that uninstall, my app launched free of this error:
/home/master/.rbenv/versions/2.5.6/lib/ruby/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/rubygems_integration.rb:408:in
block (2 levels) in replace_gem': Please install the mysql2 adapter:
gem install activerecord-mysql2-adapter` (can't activate mysql2 (~> 0.3.10), already activated mysql2-0.2.2. Make sure all dependencies are added to Gemfile.) (LoadError)
Upvotes: 0
Reputation: 3270
Both answers from Sean and Mitch contribute to the solution:
Wanted to make it clear that:
gem 'mysql2'
gem list
should output the following line:
activerecord-mysql2-adapter (0.0.3)
mysql2 (0.3.11)
Edit:
I also got the below error when I tried to open the index of a scaffold-generated model:
NoMethodError (undefined method `accept' for nil:NilClass):
app/controllers/posts_controller.rb:5:in `index'
I had to restart the rails server; and that fixed the problem.
Upvotes: 23
Reputation: 2891
I just remembered what I did to fix the error when I had it.
Just remove
activerecord-mysql2-adapter (0.0.3)
from your gemfile!
Hopefully that fixes it!
Cheers, Sean
Upvotes: 13
Reputation: 2312
please add the port: 3306
to your database.yml, and 127.0.0.1
instead localhost
Upvotes: 0
Reputation: 2312
I suggest to change localhost to 127.0.0.1
. Please show your model, maybe some fields is the keyword of mysql
Upvotes: 0
Reputation: 2245
I don't know why but when I add gem "mysql2", ">= 0.3.11" and it works. I have tried gem "mysql2", '0.3.2' and that was not working. Thank you anyway.
Upvotes: 2