2011/06/18

さくらのVPSにインストールしたRails3を使ったscaffoldジェネレータチュートリアルの続きです。



さくらのVPSにインストールしたRails3を使ったscaffoldジェネレータチュートリアルの続きです。「Ruby on Rails入門のscaffoldジェネレータ」のチュートリアルで、前回、mysql2の設定で終わったところの続きです。


scaffoldジェネレータの実行
http://www.rubylife.jp/rails/scaffold/index3.html

scaffoldジェネレータを実行します。
$ ./script/rails g scaffold infomation id:integer name:string
invoke  active_record
create    db/migrate/20110618033416_create_infomations.rb
create    app/models/infomation.rb
invoke    test_unit
create      test/unit/infomation_test.rb
create      test/fixtures/infomations.yml
 route  resources :infomations
invoke  scaffold_controller
create    app/controllers/infomations_controller.rb
invoke    erb
create      app/views/infomations
create      app/views/infomations/index.html.erb
create      app/views/infomations/edit.html.erb
create      app/views/infomations/show.html.erb
create      app/views/infomations/new.html.erb
create      app/views/infomations/_form.html.erb
invoke    test_unit
create      test/functional/infomations_controller_test.rb
invoke    helper
create      app/helpers/infomations_helper.rb
invoke      test_unit
create        test/unit/helpers/infomations_helper_test.rb
invoke  stylesheets
create    public/stylesheets/scaffold.css

scaffoldジェネレータによって作成されたマイグレーション定義ファイルを使ってテーブルを作成します。WARNINGが表示されましたが、テーブル作成は出来たようです。
$ rake db:migrate
WARNING: Global access to Rake DSL methods is deprecated.  Please include
    ...  Rake::DSL into classes and modules which use the Rake DSL methods.
WARNING: DSL method Customer::Application#task called at /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:215:in `initialize_tasks'
==  CreateInfomations: migrating =============
-- create_table(:infomations)
   -> 0.0065s
==  CreateInfomations: migrated (0.0071s) ====

WEBrickサーバを起動して、アプリの動作確認すると、正常動作しますが、日本語が文字化けします。




下記のサイトの記述を参考にMySQLの文字コード設定を変更します。

Ruby on RailsとMySQLで日本語(UTF-8)を使う
http://www.amatiny.com/blog/2008/02/ruby-on-railsmysqlutf8.html

一度、MySQLの該当のテーブルを削除します。
mysql> show tables;
+-------------------+
| Tables_in_railsdb |
+-------------------+
| infomations       |
| schema_migrations |
+-------------------+
2 rows in set (0.00 sec)

mysql> drop table infomations;
Query OK, 0 rows affected (0.02 sec)

mysql> drop table schema_migrations;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
Empty set (0.00 sec)

etc/my.cnfを下記の設定に変更します。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set = utf8

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysql.server]
user=mysql
basedir=/var/lib
default-character-set = utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set = utf8

[mysql]
default-character-set = utf8

再度、テーブルを作成します。
$ rake db:migrate

WEBrickサーバを起動します。
$ ./script/rails s

今度は日本語が化けませんでした。


0 件のコメント:

人気の投稿 (過去 30 日間)