ドットインストールです。初心者のメモ的内容です。
といっても今回もまたSinatraやRailsを利用しているともう必須なのですが、ちゃんと理解するために導入部の復習ということでやってみました。気になるところを書いていきます。
発行されたログを出力する
loggerをrequireして、ActiveRecord::Baseのloggerというプロパティにセットしているようです。
require 'active_record' require 'logger' ActiveRecord::Base.establish_connection( "adapter" => "sqlite3", "database" => "./blog.db" ) ActiveRecord::Base.logger = Logger.new(STDOUT)
こんな感じの出力になります。
DEBUG -- : Post Load (1.7ms) SELECT "posts".* FROM "posts" ORDER BY created_at LIMIT 3
検索して取得、なかったら作成して取得
あったら取り出す、なかったら作成する。
Post.where(:title => "title6").first_or_create do |p| p.body = "hello6" end
バリデーション
バリデーションはモデルクラスに書く。セーブできなかった時にerrorメッセージを出す一般的な方法。
class Post < ActiveRecord::Base validates :title, :presence =>true validates :body, :length => { :minimum => 5} end if !post.save p post.errors.messages end
アソシエーション
1対多の関係。これだけでリレーションがはれる。
class Post < ActiveRecord::Base has_many :comments end class Comment < ActiveRecord::Base belongs_to :post end post = Post.find(1) post.comments.each do |comment| p comment.body end