Mały problem :)

Witam wszystkich Rubowiczów :slight_smile:

Od razu na wstępie powiem, że przesiadam się z Zend Framework na Ruby. Dopiero zaczynam, dlatego proszę o wyrozumiałość.

System opercyjny: Windows 7 64Bit
Zainstalowany WAMP (Apache + MySQL )
Edytor: Aptana Studio 3

$ ruby -v
ruby 1.9.3p125 (2012-02-16) [i386-mingw32]

$ rails -v
Rails 3.2.1

Po utworzeniu pierwszego projektu (instalacja przebiegła bezproblemowo)
odpalam http://localhost:3000. Moim oczom pojawia się przykładowa strona
Ruby’iego. Mniej więcej ogarnąłem kontrolery i widoki przyszła pora na zabawę
z Modelami :slight_smile:

Dowiedziałem się, że połączenie z bazą danych należy skonfigurować w pliku config/database.yml
Zawartość mojego pliku wygląda następująco

[code]# SQLite version 3.x

gem install sqlite3

Ensure the SQLite 3 gem is defined in your Gemfile

gem ‘sqlite3’

development:
adapter: mysql2
database: rubytest
host: localhost
user: root
password:
pool: 5
timeout: 5000

Warning: The database defined as “test” will be erased and

re-generated from your development database when you run “rake”.

Do not set this db to the same as development or production.

test:
adapter: mysql2
database: rubytest
host: localhost
user: root
password:
pool: 5
timeout: 5000

production:
adapter: mysql2
database: rubytest
host: localhost
user: root
password:
pool: 5
timeout: 5000[/code]
Oczywiście hasła do roota nie mam.

Wyczytałem również, że po konfiguracji i uruchomieniu serwera należy wykonać komendę: “rake db:create”
Niestety po jej wywołaniu otrzymuję taki błąd:

[code]$ rake db:create
rake aborted!
Please install the mysql adapter: gem install activerecord-mysql-adapter (mysql is not part of the bundle. Add it to Gemfile.)

Tasks: TOP => db:create
(See full trace by running task with --trace)[/code]
Na stronie przykładowej po kliknięciu w “About your application’s environment” otrzymuję taki błąd:

[code]ActiveRecord::ConnectionNotEstablished

ActiveRecord::ConnectionNotEstablished
Rails.root: C:/wamp/www/ruby/FirstApp

Application Trace | Framework Trace | Full Trace
Request

Parameters:

None
Show session dump

Show env dump

Response

Headers:

None[/code]
Słyszałem, że społeczność RoR jest podobno najsympatyczniejszą i najbardziej wyrozumiałą zatem czekam na jakąkolwiek pomoc :slight_smile:

Dodaj do Gemfile

gem 'mysql2'

a potem

bundle install

Jeśli nie pomoże to wrzuć zawartość Gemfile

Niestety nie pomogło

Zawartość Gemfile

[code]source ‘https://rubygems.org

gem ‘rails’, ‘3.2.1’

Bundle edge Rails instead:

gem ‘rails’, :git => ‘git://github.com/rails/rails.git’

gem ‘mysql2’

Gems used only for assets and not required

in production environments by default.

group :assets do
gem ‘sass-rails’, ‘~> 3.2.3’
gem ‘coffee-rails’, ‘~> 3.2.1’

See https://github.com/sstephenson/execjs#readme for more supported runtimes

gem ‘therubyracer’

gem ‘uglifier’, ‘>= 1.0.3’
end

gem ‘jquery-rails’

To use ActiveModel has_secure_password

gem ‘bcrypt-ruby’, ‘~> 3.0.0’

To use Jbuilder templates for JSON

gem ‘jbuilder’

Use unicorn as the web server

gem ‘unicorn’

Deploy with Capistrano

gem ‘capistrano’

To use debugger

gem ‘ruby-debug19’, :require => ‘ruby-debug’[/code]

Dostałeś jakiś błąd? Restartowałeś serwer?

Tak, resetowałem. Błędy te co opisałem wyżej

zawołaj w katalogu projektu

gem list

i wrzuć tu output

[code]$ gem list

*** LOCAL GEMS ***

actionmailer (3.2.1)
actionpack (3.2.1)
activemodel (3.2.1)
activerecord (3.2.1)
activerecord-mysql2-adapter (0.0.3)
activerecord-sqlserver-adapter (3.2.1)
activeresource (3.2.1)
activesupport (3.2.1)
arel (3.0.2)
bigdecimal (1.1.0)
builder (3.0.4, 3.0.0)
bundler (1.0.22)
coffee-rails (3.2.2)
coffee-script (2.2.0)
coffee-script-source (1.4.0, 1.2.0)
erubis (2.7.0)
execjs (1.4.0, 1.3.0)
hike (1.2.1)
i18n (0.6.1, 0.6.0)
io-console (0.3)
journey (1.0.4, 1.0.2)
jquery-rails (2.2.0)
json (1.7.6, 1.5.4)
mail (2.4.4, 2.4.1)
mime-types (1.19, 1.17.2)
minitest (2.5.1)
multi_json (1.5.0, 1.1.0)
mysql2 (0.3.11 x86-mingw32)
pg (0.13.1 x86-mingw32)
polyglot (0.3.3)
rack (1.4.4, 1.4.1)
rack-cache (1.2, 1.1)
rack-ssl (1.3.2)
rack-test (0.6.2, 0.6.1)
rails (3.2.1)
railties (3.2.1)
rake (10.0.3, 0.9.2.2)
rb-readline (0.4.2)
rdoc (3.12, 3.9.4)
rubyzip (0.9.6.1)
sass (3.2.5)
sass-rails (3.2.6)
sprockets (2.1.3, 2.1.2)
sqlite3 (1.3.7 x86-mingw32, 1.3.5 x86-mingw32)
sqlite3-ruby (1.3.3)
thor (0.14.6)
tilt (1.3.3)
tiny_tds (0.5.1 x86-mingw32)
treetop (1.4.12, 1.4.10)
tzinfo (0.3.35, 0.3.31)
uglifier (1.3.0)[/code]

Gemy wyglądają ok.
Błąd jest o tyle dziwny, że

mówi, że adapter jaki wybrałeś to mysql a nie mysql2. Sprawdź w database.yml czy napewno masz mysql2.

Możesz też spróbować odpalić rake przez bundle exec, czyli

bundle exec rake db:create

Na stacku widze, tez ze niektórym pomogło skasowanie database.yml i otworzenie go z palca (takie voodoo, ale sugeruja ze moze jakis niedozwolony znak w yamlu)

Jak nic nie pomoże to udostępnij gdzieś swój kod.
Możesz też sprawdzić czy dla nowego projektu jest to samo.

[code]$ rake db:create
rake aborted!
Please install the mysql2 adapter: gem install activerecord-mysql2-adapter (cannot load such file – mysql2)

Tasks: TOP => db:create
(See full trace by running task with --trace)

$ bundle exec rake db:create
rake aborted!
Please install the mysql2 adapter: gem install activerecord-mysql2-adapter (cannot load such file – mysql2)

Tasks: TOP => db:create
(See full trace by running task with --trace)[/code]
Zrobiłem plik database.yml od nowa i napisałem go, a nie kopiowałem. Nic to niestety nie dało.

Mój projekt:
https://bitbucket.org/wdasiukiewicz/rortest/get/FirstApp.zip

Wrzuć na githuba, a nie zip, będzie łatwiej nam pomóc. Ah, te windows + php przyzwyczajenia :slight_smile:

https://bitbucket.org/wdasiukiewicz/rortest/src

taa sory bitbucketa ogarniam dopiero :stuck_out_tongue: Dacie rade? Czy jeszcze coś podesłać?

Ok, udało mi się rozwiązać problem.

Całkowicie odinstalowałem ruby i wszystko co z nim związane. Okazało się, że gdy ma się zainstalowany mysql (nie poprzez bundle install, tylko oddzielnie np. poprzez WAMP) trzeba pobrać to:

http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip/from/pick

Następnie po rozpakowaniu archiwum kopiujemy lib\libmysql.dll do katalogu np. C:\Ruby\lib

I wszystko działa