fc2ブログ

2023.08 «  - - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 » 2023.10
TOP > railsを初めて動かす02【DBへ接続成功】

 ← 変数名の命名規則 | TOP | railsを初めて動かす01【とにかく動くことが目標】

railsを初めて動かす02【DBへ接続成功】 

2007年05月03日 ()
前回は、DBに接続しないで終わっちゃったけど、今回は、がんばってDB接続しているアプリケーションを作ってみようと思います。

思っているだけで、成功するかどうかは、わからんちんどものっちめちん。


Webを漁ると、どうやらscaffoldというコマンド(?)を使うと、modelやcontrollerを勝手に作ってくれるらしいです。ただ、modelやcontrollerがなぜDB接続を自動的にやってくれるかどうかは不明なところですが、まあ、とにかくやってみましょうかね。

たぶんやるのは以下の項目です。

1.ほにゃらら_developmentという名前のDBをつくる
2.つくったDBに対するユーザの権限を与える(あの・・・mysqlだけかな、これが必要なのは?)
3.つくったDBにidという主キーを持つテーブルを、テーブル名複数形でつくる
4.script/generate scaffold テーブル名単数形 テーブル名単数形 というコマンドを打つ
5.あとは神に祈るのみ

という順番でできるのかなあ?


1.ほにゃらら_developmentという名前のDBをつくる


# mysql -u root



でrootとしてログインする。rootユーザに、パスワードを設定してしまった場合は、



# mysql -u root -p



が良いらしい。

config/database.ymlファイルに、myFirst_developmentというデータベース名で指定してあったので、それをそのまま使わせていただきます。


$mysql CREATE DATABASE myFirst_development;




2.つくったDBに対するユーザの権限を与える(あの・・・mysqlだけかな、これが必要なのは?)


$mysql grant all on myFirst_development.* to 'root'@'localhost';




3.つくったDBにidという主キーを持つテーブルを、テーブル名複数形でつくる


$mysql use myFirst_development;
DROP TABLE IF EXISTS books;
CREATE TABLE books(
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(400) NOT NULL DEFAULT '(no title)',
author VARCHAR(500) NOT NULL DEFAULT '(no author)',
primary key(id)
) ENGINE = InnoDB;



4.script/generate scaffold テーブル名単数形 テーブル名単数形 というコマンドを打つ


# script/generate scaffold book book

exists app/controllers/
exists app/helpers/
create app/views/book
exists app/views/layouts/
exists test/functional/
dependency model
create app/models/
create test/unit/
create test/fixtures/
create app/models/book.rb
create test/unit/book_test.rb
create test/fixtures/books.yml
No such file or directory - /tmp/mysql.sock



ぐはぁ、なんだ、最後のエラーは??

という疑問の答えはこちらに載っていました。

さすが先人は偉い。

config/database.ymlに、


socket: /var/lib/mysql/mysql.sock



という行を、host:.....の行の後に加えましたとさ。

railsはソケット通信をするのか。なるほど。などと分かった気になってみました。

さて、book関連のファイルを一回キレイにしてから、再び同じscaffoldコマンドに挑戦します。でも、script/destroyが、キレイにするためのクリーンアップ用のコマンドかどうかは定かではないですけど使っちゃう。なんとなくそうではないのかな?と思っています。



# script/destroy scaffold book book
# script/generate scaffold book book

exists app/controllers/
exists app/helpers/
create app/views/book
create app/views/layouts/
exists test/functional/
dependency model
create app/models/
create test/unit/
create test/fixtures/
create app/models/book.rb
create test/unit/book_test.rb
create test/fixtures/books.yml
create app/views/book/_form.rhtml
create app/views/book/list.rhtml
create app/views/book/show.rhtml
create app/views/book/new.rhtml
create app/views/book/edit.rhtml
create app/controllers/book_controller.rb
create test/functional/book_controller_test.rb
create app/helpers/book_helper.rb
create app/views/layouts/book.rhtml
create public/stylesheets/scaffold.css



そしてWEBrickちゃんを再起動させます。


# [ctrl]+c
# script/server



http://localhost:3000/book にアクセス!

あぁ・・・動いたわぁん。

ブラウザからbookテーブルにデータを新規追加したり変更したり削除したりできますね。

苦節2時間、いろいろありましたが、大きな一歩を踏み出せたような気がします。

今回は、DBのテーブル名と、主キーは、決まった規則があるっていうのを覚えておけば、いいかなぁ。あとソケット通信にも気をつけて!


【広告】

[2007.05.03(Thu) 00:11] Railsを初めて動かすTrackback(0) | Comments(0)
↑TOPへ

 ← 変数名の命名規則 | TOP | railsを初めて動かす01【とにかく動くことが目標】

COMMENT

COMMENT POST















管理者にだけ表示

 ← 変数名の命名規則 | TOP | railsを初めて動かす01【とにかく動くことが目標】