さくらインターネットでRails(3日目)

(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_"

コメントを残す

役立つ
面白い

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください