(1) RailsアプリをMySQLで動作させます。
MySQLを使うパラメタを入れて、Railsアプリを作成する。
%rails app2 -d mysql
–
(2) データベースの設定
environment.rbおよび.htaccessの設定、公開wwwへのシンボリックリンク作成はしておいてね。
app2/config/database.yml でMySQLの情報を設定する。
パスワードの前にも、空白を入れる。(XXXXの前)
development: adapter: mysql encoding: utf8 database: XXXX pool: 5 username: XXXX password: XXXX host: mysqlXXX.db.sakura.ne.jp
–
webから接続すると、下記のエラーがでました。
Mysql::Error in Rails/infoController#properties Can't initialize character set utf8 (path: /usr/local/mysql/4.0/share/mysql/charsets/)
config/database.yml のエンコーディングをはずす。再度チャレンジ。下記のエラー。
Client does not support authentication protocol requested by server; consider upgrading MySQL client
–
(3) MySQLモジュールインストール
%setenv RB_USER_INSTALL true %gem18 install mysql
environment.rb に下記の記述を追加
# config.gem "aws-s3", :lib => "aws/s3" config.gem "mysql", :version => "2.7"
※うまく接続できました。
–
(4) scaffoldで雛形作成
下記の雛形を作成します。
%script/generate scaffold user name:string mail:string exists app/models/ exists app/controllers/ exists app/helpers/ create app/views/users exists app/views/layouts/ exists test/functional/ exists test/unit/ exists public/stylesheets/ create app/views/users/index.html.erb create app/views/users/show.html.erb create app/views/users/new.html.erb create app/views/users/edit.html.erb create app/views/layouts/users.html.erb create public/stylesheets/scaffold.css create app/controllers/users_controller.rb create test/functional/users_controller_test.rb create app/helpers/users_helper.rb route map.resources :users dependency model exists app/models/ exists test/unit/ exists test/fixtures/ create app/models/user.rb create test/unit/user_test.rb create test/fixtures/users.yml create db/migrate create db/migrate/20090525164026_create_users.rb
webからアクセス。http://XXXX.sakura.ne.jp/app2/user。下記のエラーが出ました。
Routing Error No route matches "/user" with {:method=>:get}
ちなみに削除する場合は、下記で。
%script/destory scaffold user
–
(6) テーブル作成
テーブルさくせいするのを忘れてました。
%rake db:migrate (in /home/XXXX/Rails/mailist) == CreateUsers: migrating ==================================================== -- create_table(:users) -> 0.0116s == CreateUsers: migrated (0.0118s) ===========================================
phpmyadminで、テーブルが生成されたか確認します。*は自動生成されます。
テーブル名: users(複数形になりました)
id: int(11) auto_increment 主キー*
name: varchar(255) ヌル:はい
mail: varchar(255) ヌル:はい
create_at: datetime *
update_at: datetime *
webで接続します。http://XXXX.sakura.ne.jp/app/users/(userは、複数形usersになる)
–
マイグレーションを管理するテーブルも出来る:schema_migrations
(追記)テーブルに、接頭語を付けるには、config/environment.rbの最後に下記を追加することで、テーブルに”sys_”がつき、他のテーブルと区別しやすくなります。
ActiveRecord::Base.table_name_prefix = "sys_"