Perfect Ruby 読書記録
ActiveRecordの使い方
テーブルに対応するモデルクラスを作成するために必要なこと
- ActiveRecord::Baseを継承したクラスを作る
- ネーミングルール守る
- 実際のテーブル名は複数形
- クラスは単数形(ソースファイル名は 小文字.rb、クラス名は大文字)
こうなるはず
テーブル:blogs
ファイル:blog.rb
クラス :Blog
この命名規則を守ると、テーブル名とクラス名の紐付けは暗黙的に行われる。
※守らない場合は、別途指定が必要になるらしい。
table_name = 'blogs'
と、クラス中で指定すればいいみたいです。
下記のページを参考にさせていただきました。
Perfect Ruby 読書記録
gemパッケージの作り方
Part5を読む⇒ツールが多くてわからん
実際に使いながら覚える必要ありそう
13章 gemパッケージの作り方
・Bundler→gemの雛形を作成するツール
アプリケーション単位でGemパッケージを管理するツール
⇒Gitに依存しているため、事前にGitのインストールが必要
bundle gem %gem名%
⇒いくつかファイルが作成される。
その中でもgemspecが大事
rubyのソースが書かれている。個々の属性は本を参照(P443)
・依存関係の解決のためにgemが依存しているgem情報を記載。
1. runtime_dependency 作成するGemFileが直接必要とする依存パッケージ
2. development_dependency このGemパッケージ作成時に必要となるパッケージ
Ruby変数まとめ
Rubyの変数まとめ(初めてのRubyより)
先頭文字 | 種類 | デフォルト値 | 名前の例 |
小文字またはアンダースコア | ローカル変数 | 参照する前に代入が必要 | local_variable |
@ | インスタンス変数 | nil | @instance_variable |
@@ | クラス変数 | 参照する前に代入が必要 | @@class_variable |
$ | グローバル変数 | nil | $global_variable |
class Variable @@class def test @instance puts "instance : " + @instance.to_s @test = "instance initalize" puts "instance : " + @instance.to_s end def local local = "s" puts "local : " + local.to_s local = "local initalize" puts "local : " + local.to_s end end @@class = "class: initalize" puts @@class var = Variable.new var.test var.local
@@classを初期化しないで実行したら、以下のメッセージが表示されました。
variable.rb:21:in `<main>': uninitialized class variable @@class in Object (NameError)
@instanceについては問題なかったです。
Rails
rails2.2 の本を見ながらrails3.2を使ってみる。
いろいろ違う部分があり、なかなか進まない。
読んでる本はこれ(第3版)
RailsによるアジャイルWebアプリケーション開発 第4版
- 作者: Sam Ruby,Dave Thomas,David Heinemeier Hansson,前田修吾
- 出版社/メーカー: オーム社
- 発売日: 2011/12/01
- メディア: 単行本(ソフトカバー)
- 購入: 12人 クリック: 206回
- この商品を含むブログ (39件) を見る
とりあえず、躓いたところを記載
1. session設定の有効化
2.2系
rake db:sessions:create
rake db:migrate
config/enviroment.rbのconfig.action_controller.session_store = :active_record_storeのコメントを外す
3.2系
rails generate session_migration
config/initializers/session_sotre.rbの最後のコメントを外す
こちらに記載されていた内容を参考にしたところ、うまくいきました。
rails3.1になって変わったポイント(assets, routing, session) | iii ThreeTreesLight