Perfect Ruby 読書記録

ActiveRecordの使い方

テーブルに対応するモデルクラスを作成するために必要なこと

  1. ActiveRecord::Baseを継承したクラスを作る
  2. ネーミングルール守る
  • 実際のテーブル名は複数形
  • クラスは単数形(ソースファイル名は 小文字.rb、クラス名は大文字)

こうなるはず

テーブル:blogs

ファイル:blog.rb

クラス :Blog

 

この命名規則を守ると、テーブル名とクラス名の紐付けは暗黙的に行われる。

※守らない場合は、別途指定が必要になるらしい。

 

table_name = 'blogs'
と、クラス中で指定すればいいみたいです。

下記のページを参考にさせていただきました。

http://tsuchikazu.net/active_record_single_use/

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版

RailsによるアジャイルWebアプリケーション開発 第4版

 

 

 

とりあえず、躓いたところを記載

 

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