基本構成を作成する
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