基本構成を作成する

project memopadを作る。

$cd ~
$cd dev/rails/memopad

#controller viewを作成。
$ruby script/generate controller main index show edit new create update destroy
./script/../config/boot.rb:20:Warning: Gem::SourceIndex#search support for String patterns is deprecated
:0:Warning: Gem::SourceIndex#search support for Regexp patterns is deprecated
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/main
      exists  test/functional/
      create  app/controllers/main_controller.rb
      create  test/functional/main_controller_test.rb
      create  app/helpers/main_helper.rb
      create  app/views/main/index.rhtml
      create  app/views/main/show.rhtml
      create  app/views/main/edit.rhtml
      create  app/views/main/new.rhtml
      create  app/views/main/create.rhtml
      create  app/views/main/update.rhtml
      create  app/views/main/destroy.rhtml

#modelの作成
$ ruby script/generate model member
./script/../config/boot.rb:20:Warning: Gem::SourceIndex#search support for String patterns is deprecated
:0:Warning: Gem::SourceIndex#search support for Regexp patterns is deprecated
      exists  app/models/
      exists  test/unit/
      exists  test/fixtures/
      create  app/models/member.rb
      create  test/unit/member_test.rb
      create  test/fixtures/members.yml
      create  db/migrate
      create  db/migrate/001_create_members.rb

#データベース作成
ここでは、書籍を参考にして
initializing.rake
data_loading.rake

/lib/tasks/
のフォルダへ入れる。

$rake db:create
mysql5 --user root --execute="drop database if exists memopad_development"
mysql5 --user root --execute="create database memopad_development"
mysql5 --user root --execute="drop database if exists memopad_test"
mysql5 --user root --execute="create database memopad_test"

データベースができる。

確認方法

$ mysql5 -u root -p
mysql> show databases;
+----------------------+
| Database             |
+----------------------+
| information_schema   | 
| memopad_development  | 
| memopad_test         | 
| mysql                | 
| test                 | 
+----------------------+
5 rows in set (0.00 sec)
mysql>use memopad_development;

テーブルと項目の作成。
#db/migrate/001_create_members.rb
を修正する。

class CreateMembers < ActiveRecord::Migration
  def self.up
    create_table :members do |t|
      t.column :fname,:integer
      t.column :gname,:integer
    end
  end

  def self.down
    drop_table :members
  end
end
$ rake db:migrate
(in /Users/monote/dev/rails/memopad)
== CreateMembers: migrating ===================================================
-- create_table(:members)
   -> 0.0033s
== CreateMembers: migrated (0.0034s) ==========================================

確認方法。

mysql> show fields from members;
+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| id    | int(11) | NO   | PRI | NULL    | auto_increment | 
| fname | int(11) | YES  |     | NULL    |                | 
| gname | int(11) | YES  |     | NULL    |                | 
+-------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

データ投入
/db/fixtures/development/members.yml
を作成

<% 1.upto(10) do |idx| %>
member<%= idx %>:
    fname: namae
    gname: 名字
<% end %>

データ投入

$ rake db:import:development
(in /Users/monote/dev/rails/memopad)

確認

mysql> select * from members;
+----+-------+-------+
| id | fname | gname |
+----+-------+-------+
|  1 |     0 |     0 | 
|  2 |     0 |     0 | 
|  3 |     0 |     0 | 
|  4 |     0 |     0 | 
|  5 |     0 |     0 | 
|  6 |     0 |     0 | 
|  7 |     0 |     0 | 
|  8 |     0 |     0 | 
|  9 |     0 |     0 | 
| 10 |     0 |     0 | 
+----+-------+-------+
10 rows in set (0.00 sec)

なぜゼロになっているのだろうか。。文字コードあたりが問題。

scaffoldにてデータ確認のための作成しておく。
http://localhost:3000/admin/

$ruby script/generate scaffold members admin