Head First Rails 1~4章

3
Shinichi Tokunaga @deepneko

この場合、:controller='ads'なのでads_controller.rbのオブジェクトが生成されて、その中のなんらかの:actionが呼ばれるということか。

2010-02-21 15:30:52
Shinichi Tokunaga @deepneko

ちょっと先の方をめくってみたが、見た感じ4章だか5章だかくらいまで読めばよさそうだなこの本。

2010-02-21 15:34:54
Shinichi Tokunaga @deepneko

また例えばの話になるが、:actionがshowというメソッドだったとしよう。

2010-02-21 15:37:38
Shinichi Tokunaga @deepneko

controllerはまずモデル(Ad)からデータを探すために、Ad.find(params[:id])というfinderメソッドを呼び出す。

2010-02-21 15:38:57
Shinichi Tokunaga @deepneko

Adモデルはデータを探してcontrollerに返したら、controllerからviewにデータを渡して表示するというわけだ。

2010-02-21 15:40:04
Shinichi Tokunaga @deepneko

viewってのは、show.html.erbみたいなページテンプレート。

2010-02-21 15:40:40
Shinichi Tokunaga @deepneko

「railsは(DBの)レコードをオブジェクトに変える」って仰々しく書いてあるけど、アプリケーションで使う場合にオブジェクトに変える以外になんかあるのかよと言いたい。

2010-02-21 15:44:04
Shinichi Tokunaga @deepneko

そういえばページテンプレート使う系のものと言えばOpenPNEのソースをガン見した苦い思い出があるが、はっきり言って内部構造はわかりにくかったと思う。

2010-02-21 15:45:51
Shinichi Tokunaga @deepneko

「各要素の位置は、常に『添え字プラス1』になります」という記述を見て発狂しそうになった。これは配列という概念が0オリジンですよということを言いたかったらしい。

2010-02-21 16:02:19
Shinichi Tokunaga @deepneko

ページテンプレート上でrubyのコードを使いたかったらスクリプトレットを使いましょう。

2010-02-21 16:04:36
Shinichi Tokunaga @deepneko

スーパーテンプレートコード!

2010-02-21 16:07:08
Shinichi Tokunaga @deepneko

あ、このスーパーは継承のsuperですハイ。

2010-02-21 16:07:24
Shinichi Tokunaga @deepneko

2章終了。DBレコードの表示はこれで出来るようになります。

2010-02-21 16:10:57
Shinichi Tokunaga @deepneko

今俺がやりたいことは、既存のDBをrailsに取り込むにはどうすればいいかなんだが。

2010-02-21 16:11:26
Shinichi Tokunaga @deepneko

んーむ、railsのスキーマ定義に沿ったDBにしておかないといけないのか…

2010-02-21 16:24:22
Shinichi Tokunaga @deepneko

既存DBからrailsにimportした場合って、modelどうやって作ればいいの?

2010-02-21 17:52:51
Shinichi Tokunaga @deepneko

あー、importしたときに出来たschema.rbを使って新しくmodelを作りなおせっていうことなのかぁ。まぁ普通に考えたらそうだよね。

2010-02-21 17:55:16
Shinichi Tokunaga @deepneko

エー…これmodel = tableなの…?

2010-02-21 18:12:32
Shinichi Tokunaga @deepneko

やっぱrake db:migrateするとtableの中身空になっちゃうなぁ。

2010-02-22 19:12:49
Shinichi Tokunaga @deepneko

rake db:importみたいなのないの?w

2010-02-22 19:14:56
Shinichi Tokunaga @deepneko

そうか。俺は根本的な間違いをしていた。そもそもrake db:migrateを叩く必要がない。

2010-02-22 19:24:28
Shinichi Tokunaga @deepneko

@takano32 いやー、modelを作成した後はdb:migrateしないとって思ってたんだけど、すでにtableがあるならdb:migrateしなくても良いよね、って思った。

2010-02-22 19:52:07
Shinichi Tokunaga @deepneko

つまり。既存のDBの全てのテーブル名をアンダースコアを使わない名前に書きかえ、全てのテーブルのprimary_keyと思しきカラム名をidに書き変えれば、railsへの移行ができる。

2010-02-22 20:52:52
Shinichi Tokunaga @deepneko

これ…joinとかが含まれたSQLを使いたいときどうすんの?そもそもそういう風にDBを設計しないってこと?

2010-02-22 20:55:58