ランプの中身(Ruby on Railsのシステム開発)
ランプの中身(Ruby on Railsのシステム開発)では、株式会社ケイビーエムジェイのRuby on Railsエンジニアが蓄積したノウハウを公開しています。Ruby on Railに関する技術解説や実践的なノウハウなど、開発現場の技術に則したコンテンツを随時追加していきます。 初心者の方でもわかりやすい技術解説を心がけています。リクエスト、ご質問も受け付けいますので、ご気軽にコメントを記述して下さい。

< RailsでAmazon APIを利用す... | メイン  |  railroadを用... >

x5rの中身(Ruby
2008.02.14

Ruby on Railsでacts_as_paranoidを使い倒す


KBMJのプログラマのx5rです。

今日はRuby on Railsプラグインのacts_as_paranoidについて説明します。
これはDBのモデルデータを削除をする時に物理削除ではなく、論理削除をするためのプラグインです。

 

Railsの2.0系がリリースされましたが、まだ1.2系で開発することも多いと思います。
しかし、このacts_as_paranoidプラグイン、使い方は簡単ですが、Railsの1.2.5で利用する時に一部の機能でエラーが発生して使用できなかったり、また、私の希望する機能がありませんでしたので、このacts_as_paranoidプラグインを一部改良しました。

そこで、私が行ったエラーの対処法と拡張を説明したいと思います。
なお、以下#{RAILS_ROOT}で全て作業しているものとします。

 

 

CRUDアプリの作成

 

前回のAmazonAPIの使い方を説明した時は、Railsのバージョンは2.0系でしたが、今回はRails1.8.5を利用します。

 

まず、CRUD処理が必要なので、scaffoldを利用して作成します。
以下、単純なので簡単に流れだけ書いておきます。

 

 $ script/generate model Book #Bookモデルの作成
 $ less db/migrate/001_create_books.rb #Bookモデルのマイグレーションを編集
 class CreateBooks < ActiveRecord::Migration
   def self.up
     create_table :books do |t|
       t.column :title,        :string
       t.column :author,       :string
       t.column :date,         :date
       t.column :created_at,   :datetime
       t.column :updated_at,   :datetime
     end
   end
    def self.down
     drop_table :books
   end
 end
 $ rake db:migrate #マイグレート
 $ script/generate scaffold Book Book #scaffoldを作成
 $ script/server #サーバ起動 
 

では、http://localhost:3000/bookにアクセスします。
実際にデータを追加して削除すると、レコードが削除、つまり物理削除されていることがわかります。

 

acts_as_paranoidの導入

 

acts_as_paranoidのインストール

 

acts_as_paranoidプラグインをインストールします。

 

 $ ruby script/plugin source http://techno-weenie.net/svn/projects/plugins
 $ ruby script/plugin install acts_as_paranoid 
 

 deleted_atカラムを追加

 

acts_as_paranoidプラグインではdeleted_atカラムを論理削除のためのフラグとして機能しますので、deleted_atカラムを追加します。

 
 $ script/generate migration AddBooksDeletedAt #マイグレーションファイルの作成
 $ less db/migrate/002_add_books_deleted_at.rb #マイグレーションファイルの編集
 class AddBooksDeletedAt < ActiveRecord::Migration
   def self.up
     add_column :book, :deleted_at,   :datetime,  :comment => "削除日時"
   end
    def self.down
     remove_column :book, :deleted_at
   end
 end
 $ rake db:migrate #マイグレーション 
 

acts_at_paranoidの設定

 

Bookモデルにacts_as_paranoidクラスメソッドを追加します。

 

 $ less app/models/book.rb
 class Book < ActiveRecord::Base
   acts_as_paranoid
 end 
 

動作確認

 

実際に削除してみると、

 

 undefined method `construct_count_options_from_args' for Book:Class 
 
というエラーが表示されます。

 

これは最新のacts_as_paranoidプラグインがRails2.0に向けた対応をしたことによる影響らしいです。

そこで
RAILS_ROOT/vendor/plugins/acts_as_paranoid/lib/caboose/acts/paranoid.rb
の約90行目あたりの

 

 calculate_with_deleted(:count, *construct_count_options_from_args(*args)) 
 

 

 calculate_with_deleted(:count, *construct_count_options_from_legacy_args(*args)) 
 
に変更します。

これで削除をしてみるとうまく動作することが確認できます。

 

 

論理削除されたものも取得する

 

 

さて、場合によっては論理削除されたデータも含めた形で表示したいということもあるかと思います。
そして、acts_as_pluginは削除フラグのたっているものも含めて取得するためのメソッドも用意しています。

それが以下の2つの方法です。

  • :with_deletedオプションを指定
  • find_with_deletedメソッドを利用
はじめにBookControllerに次のようなアクションを追加し、簡単なテンプレートも作成して試してみます。

 

BookControllerにlist_with_deletedアクションを追加

 
$ less app/controllers/book_controller.rb
 class BookController < ApplicationController
    # --- 省略 ---
   def list_with_deleted
     #データ取得処理を記述する
   end
  end 

テンプレートを作成

 
 $ less app/views/book/list_with_deleted.rhtml
 <%- @books.each do |book| -%>
 <ul>
   <li><%= book.title %> - <%= book.author %> - <%= book.date %></li>
 </ul>
 <%- end -%> 

 :with_deletedオプションを指定

 

list_with_deletedアクションにデータ取得処理を記述します。

 

 $ less app/controllers/book_controller.rb
  class BookController < ApplicationController
    # --- 省略 ---
   def list_with_deleted
     @books = Book.find(:all, :with_deleted => true)
   end
 end 
 
http://localhost:3000/book/list_with_deletedにアクセスしてみます。
すると

 

 Unknown key(s): with_deleted 
 
と表示されてしまいます。

 

そこで[#8896] find(:all, :with_deleted => true) broken (at least in version 0.3.1/July-2006)を参考にRAILS_ROOT/vendor/plugins/acts_as_paranoid/lib/caboose/acts/paranoid.rbの約58行目あたりの

 

 class << self
   alias_method :find_every_with_deleted,    :find_every
   alias_method :calculate_with_deleted,     :calculate
   alias_method :delete_all!,                :delete_all
 end 
 

に1行追加して

 
 class << self
   VALID_FIND_OPTIONS << :with_deleted unless VALID_FIND_OPTIONS.include?(:with_deleted)
   alias_method :find_every_with_deleted,    :find_every
   alias_method :calculate_with_deleted,     :calculate
   alias_method :delete_all!,                :delete_all
 end 
 

のようにします。
これで論理削除されたものも含まれて表示されます。

 

find_with_deletedメソッドを利用

 

find_with_deletedメソッドで論理削除されたものも取得する方法があります。

以下で説明するページネートで利用するためにこちらも確認してみます。
list_with_deletedアクションにデータ取得処理を記述します。

 
$ less app/controllers/book_controller.rb
 class BookController < ApplicationController
    # --- 省略 ---
   def list_with_deleted
     @books = Book.find_with_deleted(:all)
   end
 end 
 

http://localhost:3000/book/list_with_deletedにアクセスしてみます。
すると

 
undefined method `extract_options!' for [:all]:Array 
 

というエラーが表示されます。
これもRails2.0に向けた対応によるものです。

 

そこで論理削除プラグイン(バグ修正) - Rails開発日記のサイトを参考に対応します。
上記のサイトではActiveSupportに直接変更を加える方法が説明されていますが、それはあまりやりたくないので、RubyおよびRailsの特性を生かして、クラス(モジュール)を拡張して対応してみます。
上記サイトのリンク先

のソースを今回のRailsアプリに反映させます。


RAILS_ROOT/libにactive_support_extend.rbというファイルを作成して以下のように記述します。

 

 $ less lib/active_support_extend.rb
  module ActiveSupport #:nodoc:
   module CoreExtensions #:nodoc:
     module Array #:nodoc:
       module ExtractOptions
         # Extract options from a set of arguments. Removes and returns the last element in the array if it's a hash, otherwise returns a blank hash.
         #
         #   def options(*args)
         #     args.extract_options!
         #   end
         #
         #   options(1, 2)           # => {}
         #   options(1, 2, :a => :b) # => {:a=>:b}
         def extract_options!
           last.is_a?(::Hash) ? pop : {}
         end
       end
     end
   end
 end
  class Array
   include ActiveSupport::CoreExtensions::Array::ExtractOptions
 end 
 

そしてRAILS_ROOT/config/environment.rbに

 

 $ less config/environment.rb # 一番下に記述
 require "active_support_extend" 
 

を記述してWebrickを再起動します。
そして、再度http://localhost:3000/book/list_with_deletedにアクセスしてみます。
これで論理削除されたレコードも表示されているのがわかります。

 

 

ページネートでfind_with_deletedを利用する

 

 

 ActionController::Paginationを拡張

 

上記で、論理削除されたデータの取得ができるようになりましたが、一覧画面でページネートを利用した際にも論理削除されたデータを取得したいことがあります。

 

そこでActionCcontrollerのpagination.rbを参考にページネートを拡張してみます。


RAILS_ROOT/vendor/plugins/acts_as_paranoid/lib/の下にpagination_extend.rbというファイルを作成し、以下のように記述します。

 
$ less vendor/plugins/acts_as_paranoid/lib/pagination_extend.rb
 module ActionController
   module Pagination
     def paginate_with_deleted(collection_id, options={})
       Pagination.validate_options!(collection_id, options, true)
       paginator_and_collection_for_with_deleted(collection_id, options)
     end
     module ClassMethods
       def paginate_with_deleted(collection_id, options={})
         Pagination.validate_options!(collection_id, options, false)
         module_eval do
           before_filter :create_paginators_and_retrieve_collections_with_deleted
           OPTIONS[self] ||= Hash.new
           OPTIONS[self][collection_id] = options
         end
       end
     end
     protected
     def create_paginators_and_retrieve_collections_with_deleted #:nodoc:
       Pagination::OPTIONS[self.class].each do |collection_id, options|
         next unless options[:actions].include? action_name if
           options[:actions]
          paginator, collection =
           paginator_and_collection_for_with_deleted(collection_id, options)
          paginator_name = "@#{options[:singular_name]}_pages"
         self.instance_variable_set(paginator_name, paginator)
          collection_name = "@#{collection_id.to_s}"
         self.instance_variable_set(collection_name, collection)
       end
     end
     def find_collection_for_pagination_with_deleted(model, options, paginator)
       model.find_with_deleted(:all, :conditions => options[:conditions],
                  :order => options[:order_by] || options[:order],
                  :joins => options[:join] || options[:joins], :include => options[:include],
                  :select => options[:select], :limit => options[:per_page],
                  :offset => paginator.current.offset)
     end
     def count_collection_for_pagination_with_deleted(model, options)
       model.count_with_deleted(:conditions => options[:conditions],
                   :joins => options[:join] || options[:joins],
                   :include => options[:include],
                   :select => options[:count])
     end
     def paginator_and_collection_for_with_deleted(collection_id, options) #:nodoc:
       klass = options[:class_name].constantize
       page  = params[options[:parameter]]
       count = count_collection_for_pagination_with_deleted(klass, options)
       paginator = Paginator.new(self, count, options[:per_page], page)
       collection = find_collection_for_pagination_with_deleted(klass, options, paginator)
        return paginator, collection
     end
   end
 end 
 

やっていることは最終的にfind_with_deletedメソッドを実行するために、そこまでのルートで呼ばれるメソッド名に「_with_deleted」を付けているだけです。
DRYではないですが、まあよしとします。

そして、RAILS_ROOT/vendor/plugins/acts_as_paranoid/init.rbでロードします。

 
$ less vendor/plugins/acts_as_paranoid/init.rb
 # 先頭に追加
 require 'pagination_extend'
 # 以下省略 
 

BookControllerのlistアクションを修正

 
 $ less app/controllers/book_controller.rb
 class BookController < ApplicationController
   # --- 省略 ---
   def list
     @book_pages, @books = paginate_with_deleted :books, :per_page => 10
   end
   # --- 省略 ---
 end 
 

動作確認

 

http://localhost:3000/book/listにアクセスすると、論理削除されたデータも含めたページネートが実現されています。

 

 

参考サイト

 

 

 

 

 

 

 

コメント (0)  |トラックバック (92)

ブックマークに追加する Subscribe with livedoor Reader あとで読む

トラックバック URL

トラックバック一覧

generic wellbutrin
generic wellbutrin [続きを読む] posted from generic wellbutrin 2008.06.11 06:00
buy vicodin online
buy vicodin online [続きを読む] posted from buy vicodin online 2008.06.11 07:14
buy hoodia
buy hoodia [続きを読む] posted from buy hoodia 2008.06.11 08:27
buy hydrocodone online
buy hydrocodone online [続きを読む] posted from buy hydrocodone online 2008.06.11 08:28
buy hoodia
buy hoodia [続きを読む] posted from buy hoodia 2008.06.11 09:43
purchase phentermine
purchase phentermine [続きを読む] posted from purchase phentermine 2008.06.11 10:56
xanax online
xanax online [続きを読む] posted from xanax online 2008.06.11 10:57
generic tadalafil
generic tadalafil [続きを読む] posted from generic tadalafil 2008.06.11 10:57
buy hydrocodone online
buy hydrocodone online [続きを読む] posted from buy hydrocodone online 2008.06.11 10:58
buy ultram online
buy ultram online [続きを読む] posted from buy ultram online 2008.06.11 23:59
cheap propecia
cheap propecia [続きを読む] posted from cheap propecia 2008.06.12 00:01
generic effexor
generic effexor [続きを読む] posted from generic effexor 2008.06.13 03:33
generic zocor
generic zocor [続きを読む] posted from generic zocor 2008.06.13 04:46
xenical online
xenical online [続きを読む] posted from xenical online 2008.06.13 07:34
cheap phentermine
cheap phentermine [続きを読む] posted from cheap phentermine 2008.06.13 08:44
adipex diet pill
I feel like a complete blank. That's how it is. I can't be bothered with anything recently. <a hr... [続きを読む] posted from adipex cheapest price 2008.06.13 11:59
cheap levitra
cheap levitra [続きを読む] posted from cheap levitra 2008.06.13 15:07
purchase xanax
purchase xanax [続きを読む] posted from purchase xanax 2008.06.13 18:18
zoloft online
zoloft online [続きを読む] posted from zoloft online 2008.06.13 19:28
purchase soma
purchase soma [続きを読む] posted from purchase soma 2008.06.13 21:39
generic hydrocodone
generic hydrocodone [続きを読む] posted from generic hydrocodone 2008.06.13 22:47
generic prilosec
generic prilosec [続きを読む] posted from generic prilosec 2008.06.14 01:25
viagra online
viagra online [続きを読む] posted from viagra online 2008.06.14 02:47
generic wellbutrin
generic wellbutrin [続きを読む] posted from generic wellbutrin 2008.06.14 05:18
xenical online
xenical online [続きを読む] posted from xenical online 2008.06.14 10:01
cheap fioricet
cheap fioricet [続きを読む] posted from cheap fioricet 2008.06.14 11:11
purchase valium
purchase valium [続きを読む] posted from purchase valium 2008.06.14 15:50
order vicodin
order vicodin [続きを読む] posted from order vicodin 2008.06.14 18:08
buy xenical
buy xenical [続きを読む] posted from buy xenical 2008.06.14 21:57
generic phentermine
generic phentermine [続きを読む] posted from generic phentermine 2008.06.15 04:06
buy fioricet
buy fioricet [続きを読む] posted from buy fioricet 2008.06.15 07:36
cheap alprazolam
cheap alprazolam [続きを読む] posted from cheap alprazolam 2008.06.15 11:06
order carisoprodol
order carisoprodol [続きを読む] posted from order carisoprodol 2008.06.15 12:17
generic norvasc
generic norvasc [続きを読む] posted from generic norvasc 2008.06.15 13:26
alprazolam online
alprazolam online [続きを読む] posted from alprazolam online 2008.06.15 18:31
Stacy Kibler Nude
Manhunt Gay <a href="http://etoqomyjubujato1492008.blogspot.com/">Manhunt Gay</a> [続きを読む] posted from Stacy Kibler Nude 2008.07.23 02:34
Lisa Rinna Nude
Adult Flintstone <a href="http://uremef3902008.blogspot.com/">Adult Flintstone</a> [続きを読む] posted from Lisa Rinna Nude 2008.07.23 03:22
American Porn Thumbs
Sex Swing Videos <a href="http://www.google.com/notebook/public/04443973645862032114/BDSIKQgoQr9u93L... [続きを読む] posted from American Porn Thumbs 2008.07.23 04:10
Wendi Mclendoncovey Nude
Lesbian And Gay Sex <a href="http://www.google.com/notebook/public/04443973645862032114/BDQxBQwoQrdu... [続きを読む] posted from Wendi Mclendoncovey Nude 2008.07.23 04:57
Anna Nicole Smith Sex Movies
Manhunt Gay <a href="http://www.google.com/notebook/public/04443973645862032114/BDSMKQgoQs9u93LQj">M... [続きを読む] posted from Anna Nicole Smith Sex Movies 2008.07.23 05:44
Amateur Tiener
American Porn Thumbs <a href="http://www.google.com/notebook/public/04443973645862032114/BDQPCQwoQq9... [続きを読む] posted from Amateur Tiener 2008.07.23 06:27
Stacy Kibler Nude
Cartoon Adult Game <a href="http://www.freewebtown.com/egeh4777/Cartoon_Adult_Game.html">Cartoon Adu... [続きを読む] posted from Stacy Kibler Nude 2008.07.23 07:14
Gay Male Sex Slaves Drinking Piss
Teen Pussy Fucking <a href="http://www.freewebtown.com/mom971/Teen_Pussy_Fucking.html">Teen Pussy Fu... [続きを読む] posted from Gay Male Sex Slaves Drinking Piss 2008.07.23 08:01
Israeli Nude
Katie Tommaney Porn <a href="http://www.freewebtown.com/iqymu104/Katie_Tommaney_Porn.html">Katie Tom... [続きを読む] posted from Israeli Nude 2008.07.23 08:45
Cssa Sex Stories
Hmong Porn <a href="http://www.freewebtown.com/iqymu104/Hmong_Porn.html">Hmong Porn</a> [続きを読む] posted from Cssa Sex Stories 2008.07.23 09:31
Symptoms Of Spinal Meningitis In Adults
Erotic Sex Story <a href="http://www.freewebtown.com/kuren4580/Erotic_Sex_Story.html">Erotic Sex Sto... [続きを読む] posted from Symptoms Of Spinal Meningitis In Adults 2008.07.23 10:17
Teen Pink Series
Vanessa Hutchens Nude <a href="http://www.freewebtown.com/kuren4580/Vanessa_Hutchens_Nude.html">Vane... [続きを読む] posted from Teen Pink Series 2008.07.23 11:01
Erotic Mature Women
Blake Mitchell Porn <a href="http://www.freewebtown.com/ate4515/Blake_Mitchell_Porn.html">Blake Mitc... [続きを読む] posted from Erotic Mature Women 2008.07.23 11:47
Is Hugh Laurie Gay
Jiri Tlusty Nude Photos <a href="http://www.freewebtown.com/apiko8665/Jiri_Tlusty_Nude_Photos.html">... [続きを読む] posted from Is Hugh Laurie Gay 2008.07.23 12:30
Haley Teen Model
Morgan Fairchild In A Bikini <a href="http://www.freewebtown.com/ilo5377/Morgan_Fairchild_In_A_Bikin... [続きを読む] posted from Haley Teen Model 2008.07.23 13:22
Jaimee Foxworth Adult
Vintage Nudes Free <a href="http://www.freewebtown.com/egeh4777/Vintage_Nudes_Free.html">Vintage Nud... [続きを読む] posted from Jaimee Foxworth Adult 2008.07.23 14:03
Latina Porn Stars
Blonde Teen Porn <a href="http://www.freewebtown.com/ocir3456/Blonde_Teen_Porn.html">Blonde Teen Por... [続きを読む] posted from Latina Porn Stars 2008.07.23 14:53
Gay Hispanic Porn
Gay Boy Galleries <a href="http://gagejep2292008.blogspot.com/">Gay Boy Galleries</a> Gay Hispanic P... [続きを読む] posted from Gay Hispanic Porn 2008.07.23 15:41
Lesbian Pussy Sex
Gay Sex Clips <a href="http://hojyhabehon2602008.blogspot.com/">Gay Sex Clips</a> Calender Girls Nud... [続きを読む] posted from Lesbian Pussy Sex 2008.07.23 16:23
Male Ass Stuffing
Jennifer Sullivan Nude <a href="http://edubuxehityfusim4782008.blogspot.com/">Jennifer Sullivan Nude... [続きを読む] posted from Male Ass Stuffing 2008.07.23 17:04
Teen Nudist Pics
Lipstik Brand Girls Clothing <a href="http://gagejep2292008.blogspot.com/">Lipstik Brand Girls Cloth... [続きを読む] posted from Teen Nudist Pics 2008.07.23 17:52
Bovine Sex Club
Underage Porn Websites <a href="http://hojyhabehon2602008.blogspot.com/">Underage Porn Websites</a> ... [続きを読む] posted from Bovine Sex Club 2008.07.23 18:31
Unerase Porn
African Goddess Nude <a href="http://www.google.com/notebook/public/02273371091365957191/BDRGDQwoQu-... [続きを読む] posted from Unerase Porn 2008.07.23 19:17
Nude Anna Paquin
Back Black Sexy Girls <a href="http://www.google.com/notebook/public/02273371091365957191/BDSIKQgoQ7... [続きを読む] posted from Nude Anna Paquin 2008.07.23 19:59
Wclg Girls
Free Adult Chatline <a href="http://www.google.com/notebook/public/02273371091365957191/BDRQEQwoQv-j... [続きを読む] posted from Wclg Girls 2008.07.23 20:44
Hugh Laurie Gay
Sex On Webcam <a href="http://www.google.com/notebook/public/02273371091365957191/BDRE-QwoQsPnp87Qj"... [続きを読む] posted from Hugh Laurie Gay 2008.07.23 21:28
Perfect Tan Bikini
Upskirt Fighting Girls <a href="http://www.google.com/notebook/public/02273371091365957191/BDRGDQwoQ... [続きを読む] posted from Perfect Tan Bikini 2008.07.23 22:13
Sex In St Louis
Artful Nudes <a href="http://www.google.com/notebook/public/02273371091365957191/BDSMKQgoQyfnp87Qj">... [続きを読む] posted from Sex In St Louis 2008.07.23 22:52
Adult Arkansas
Adult Bithday Cards <a href="http://www.google.com/notebook/public/02273371091365957191/BDQxBQwoQxPn... [続きを読む] posted from Adult Arkansas 2008.07.23 23:34
Jenny Mccarthy Nude Pics
Chyna Anal <a href="http://www.google.com/notebook/public/02273371091365957191/BDQPCQwoQ0-jq87Qj">Ch... [続きを読む] posted from Jenny Mccarthy Nude Pics 2008.07.24 00:20
Yutte Stensgaard Nude
<a href="http://rollyo.com/Teen-Masterbati3363">Teen Masterbation Clips</a> <a href="http://rollyo.c... [続きを読む] posted from Yutte Stensgaard Nude 2008.07.24 02:52
Adult Stem Cell Diabetes Type Ii
<a href="http://rollyo.com/Girls-Butthole6613">Girls Butthole</a> <a href="http://rollyo.com/Speedos... [続きを読む] posted from Adult Stem Cell Diabetes Type Ii 2008.07.24 03:38
Nudes Tied To Tree
<a href="http://rollyo.com/Ginger-Supposit6474">Ginger Suppository Sex Stories</a> <a href="http://r... [続きを読む] posted from Nudes Tied To Tree 2008.07.24 04:23
Barbie Benton Nude
<a href="http://rollyo.com/Power-Ranger-Ad2658">Power Ranger Adult Costume</a> <a href="http://rolly... [続きを読む] posted from Barbie Benton Nude 2008.07.24 05:11
Sex Is Slippery When Wet
<a href="http://rollyo.com/Russian-Nude-Ma6083">Russian Nude Mail Order Bride</a> <a href="http://ro... [続きを読む] posted from Sex Is Slippery When Wet 2008.07.24 05:54
Fab Bikini Tankini
<a href="http://rollyo.com/Teenagers-Fucki5497">Teenagers Fucking Each Other</a> <a href="http://rol... [続きを読む] posted from Fab Bikini Tankini 2008.07.24 06:40
Caribbean Adult Erotic Sex Vacation
<a href="http://rollyo.com/Flight-Of-The-I3899">Flight Of The Intruder Gay</a> <a href="http://rolly... [続きを読む] posted from Caribbean Adult Erotic Sex Vacation 2008.07.24 07:21
Mariah Carey In Bikini
<a href="http://rollyo.com/Free-Nude-Playg6756">Free Nude Playgirl Pictures</a> <a href="http://roll... [続きを読む] posted from Mariah Carey In Bikini 2008.07.24 08:09
Tom Netherton Gay
<a href="http://rollyo.com/Logo-Sonnerie-M6443">Logo Sonnerie Music Monde Telechargement Sex</a> <a ... [続きを読む] posted from Tom Netherton Gay 2008.07.24 08:53
Teen Girls Fucking Old Men
<a href="http://rollyo.com/Gay-Straight-Qu4686">Gay Straight Quiz</a> <a href="http://rollyo.com/Nud... [続きを読む] posted from Teen Girls Fucking Old Men 2008.07.24 09:35
Free Cruel Intention Porn
<a href="http://rollyo.com/Bluetube-Adult-6084">Bluetube Adult Dvd</a> <a href="http://rollyo.com/Ce... [続きを読む] posted from Free Cruel Intention Porn 2008.07.24 10:18
Katharine Towne Nude
<a href="http://rollyo.com/Bowser-Fucks5693">Bowser Fucks</a> <a href="http://rollyo.com/Sex-With-A-... [続きを読む] posted from Katharine Towne Nude 2008.07.24 11:01
Bbw Redhead Heidi Galleries
<a href="http://rollyo.com/Cranking-And-Pe9145">Cranking And Pedal Pumping Girls</a> <a href="http:/... [続きを読む] posted from Bbw Redhead Heidi Galleries 2008.07.24 11:51
Homosexual Sex
<a href="http://rollyo.com/Webcam-Janis9416">Webcam Janis</a> <a href="http://rollyo.com/Colege-Girl... [続きを読む] posted from Homosexual Sex 2008.07.24 12:36
Russian Nude Teens
<a href="http://rollyo.com/Sexy-Girls-In-M4884">Sexy Girls In Mini Skirts</a> <a href="http://rollyo... [続きを読む] posted from Russian Nude Teens 2008.07.24 13:19
Linda Nolan Nude
<a href="http://rollyo.com/Mommy-Phone-Sex9833">Mommy Phone Sex Panties</a> <a href="http://rollyo.c... [続きを読む] posted from Linda Nolan Nude 2008.07.24 14:08
Mary Stanson Nude
<a href="http://rollyo.com/Shanti-Carson-N4645">Shanti Carson Nude</a> <a href="http://rollyo.com/Bl... [続きを読む] posted from Mary Stanson Nude 2008.07.24 14:48
Happy Nude Year
<a href="http://rollyo.com/147gta-Gay-Buen8117">147gta Gay Buenos Aires</a> <a href="http://rollyo.c... [続きを読む] posted from Happy Nude Year 2008.07.24 15:34
Laguna Beach Nude
<a href="http://rollyo.com/Forum-On-Strate5361">Forum On Straterra For Adults</a> <a href="http://ro... [続きを読む] posted from Laguna Beach Nude 2008.07.24 16:17
Lighthouseseries Nude
<a href="http://rollyo.com/Canadian-Amateu6433">Canadian Amateur Beaver</a> <a href="http://rollyo.c... [続きを読む] posted from Lighthouseseries Nude 2008.07.24 17:01
Free Naked Teens
Tila Tequila Porn <a href="http://jakesytubituga1872008.blogspot.com/">Tila Tequila Porn</a> Gay Boy... [続きを読む] posted from Free Naked Teens 2008.07.24 21:02
Nude Male Models
Free Celeb Nude Pics <a href="http://jakesytubituga1872008.blogspot.com/">Free Celeb Nude Pics</a> F... [続きを読む] posted from Nude Male Models 2008.07.24 21:44
Adult Story Archive
Tanya Roberts Nude <a href="http://www.google.com/notebook/public/08846020943471582394/BDRE-QwoQot7Y... [続きを読む] posted from Adult Story Archive 2008.07.24 22:27
Jenny Mccarthy Nude
Brittany Spears Nude <a href="http://www.google.com/notebook/public/08846020943471582394/BDRQEQwoQjd... [続きを読む] posted from Jenny Mccarthy Nude 2008.07.24 23:31
Free Female Celebs Nude
Big Girls Dont Cry <a href="http://www.google.com/notebook/public/08846020943471582394/BDQPCQwoQjd7Y... [続きを読む] posted from Free Female Celebs Nude 2008.07.25 00:11
Kim Kardashian Nude Pics
Girls Touching Girls <a href="http://rollyo.com/Girls-Touching-9257">Girls Touching Girls</a> Mom Fu... [続きを読む] posted from Kim Kardashian Nude Pics 2008.07.25 00:59
Teen Art Models
Tiny Teen Tits <a href="http://rollyo.com/Tiny-Teen-Tits7904">Tiny Teen Tits</a> Julia Stiles Nude <... [続きを読む] posted from Teen Art Models 2008.07.25 01:48

この記事にコメントする

ニックネーム:
メールアドレス:
URL:


KBMJのWebソリューション
Ruby on Rails Summer Festival 2008開催決定!!

TOPICS

2008/06/25
ZD Net Builder」の連載記事です。第四回は「Rubyでどう書く?:重複したRSSをまとめる」が掲載されました。

2008/05/30
ZD Net Builder」の連載記事です。第三回は「Rubyでどう書く?:Rubyで特定URLの画像パス一覧を表示する」が掲載されました。

2008/05/07
ZD Net Builder」に連載を始めました。第二回は「Rubyでどう書く?:RubyでPDF履歴書を作成する」が掲載されました。

2008/04/24
アットマーク・アイティ」に『 Rubyを使ってPaSoRi経由でSuicaの乗車履歴を取得し、GoogleMapsやGoogleEarthで表示する』が掲載されました。

全体のRoR最新ブログ一覧

プロフィール

  • x5r
  • MacでRuby on Rails開発!

ブログの購読

RSS

timelog
株式会社ケイビーエムジェイロゴ