hasマンリーの中で、find_sqlのテクニック


もっと読む
多くの場合、LIlsが提供する対象関係方法:has_マンリー、belongsト、もう使いやすいです。ただし、自分でいくつかのクエリをカスタマイズする必要があります。例えば、ある分類のすべての書籍(サブカテゴリを含む)

class BookCategory < ActiveRecord::Base
  has_many :books,:foreign_key => "category_id"
  has_many :all_books,:class_name=>"Book" , :finder_sql =>"
  	select * from #{Book.table_name}
  	where category_id between #{id}.00 and #{id}.99"
そして実行します。エラーが見つかりました。

warning: Object#id will be deprecated; use Object#object_id
ここで、find_のためにsqlの中の文字列の位置環境はクラスです。だから、Class.idを呼んで、私達が欲しいのはBook Categoryの対象方法です。
この問題はライルスが自然に考えました。docをよく読んでみたら、find_sqlは、ドキュメントで「単一引用符」を使用します。  ''
そこで問題はすらすらと解決した。