まず、Railsの懸念事項についてここで見つけたプラクティスに従っています(素晴らしいアイデアです!):https ://gist.github.com/1014971
ただし、エラーが発生します。
undefined method `search' for #<Class:0x5c25ea0>
app/controllers/accessories_controller.rb:6:in `index'
/app/models/concerns/ディレクトリを/config/application.rbにロードしています。したがって、「懸念」モジュールがロードされています。それを指摘したかっただけです。
これが私のコードです:
/app/models/concerns/searchable.rb
module Searchable
extend ActiveSupport::Concern
# Add a "search" scope to the models
def self.search (search)
if search
where('name LIKE ?', "%#{search}%")
else
scoped
end
end
end
/app/models/accessory.rb
class Accessory < ActiveRecord::Base
include Searchable
...
end
/app/controllers/accessories_controller.rb
class AccessoriesController < ApplicationController
def index
@accessories = Accessory.search(params[:search])
...
end
end