すべてのモデルがアクセスできるメソッドをどこに追加すればよいかを理解するのに少し問題がありました。他の同様の投稿を読みましたが、どこに追加すればよいかよくわかりません。「/ lib」にモジュールとして追加し、モデルクラスに含めることについて述べた人もいます(運が悪い場合は、すでにこれを試してください)。では、これを追加するためのベストプラクティスは何ですか?
私は次のことを試みています:
私のモジュール: /lib/search.rb
module Search
def self.search(params,columns_search)
srch = params[:search]
if srch.blank?
scoped
else
search= []
#Add conditions for the search
columns_search.map do |column|
search << (sanitize_sql_for_conditions ["LOWER(CAST(#{column} as TEXT)) LIKE ?", "%#{srch.downcase}%"])
end
where("(#{conditions.join(" and ")})")
end
end
私のモデルcars.rbで
class Cars < ActiveRecord::Base
include Search
attr_accessible :name
end
しかし、コンソールに次のエラーが表示されます。
2012-08-01 11:56:54 -0500 に 127.0.0.1 の GET "/cars" を開始しました
ActionController::RoutingError (初期化されていない定数 Car::Search): app/models/car.rb:2:in `'
どんな助けでも大歓迎です!:)