我有一个小问题要理解我应该在哪里添加一个所有模型都可以访问它的方法。我阅读了其他类似的帖子,但不清楚在哪里添加。他们中的一些人说把它作为一个模块添加到“/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
在我的模型car.rb
class Cars < ActiveRecord::Base
include Search
attr_accessible :name
end
但我在控制台上收到以下错误:
在 2012-08-01 11:56:54 -0500 开始为 127.0.0.1 获取“/cars”
ActionController::RoutingError (未初始化常量 Car::Search): app/models/car.rb:2:in `'
任何帮助将不胜感激!:)