Удобные функции MetaSearch, такие как .not_in, работали в Rails 3.0 и 3.1 внутри вызовов областей.
Мне пришлось переписать некоторые области, чтобы они были "обычными Rails 3.2" без удобства MetaSearch, хотя MetaSearch работает вне области видимости.,И он сломал несколько моих приложений и инструментов при обновлении.
Идеи?Я использую MetaSearch везде.Даже написал пользовательский предикат.Надеюсь, все еще не хватает чего-то очевидного.
В Rails 3.2, работающего внутри движка для разделения кодаПохоже, это не имело значения, когда я пытался изолировать от Vanilla-Rails без пространства имен / подпапок или механизмов.
Примечание. Я только что написал свой первый настроенный предикат "Где": gt_da для: more_than_days_ago так: создал_гт_да= 7 будет искать созданные записи> = 7.days.ago https://github.com/ernie/meta_search/wiki/Handy-way-to-develop-and-test-creating-a-new-%22Where%22-without-restarting-your-server-everytime
class Bug < ActiveRecord::Base
# MetaSearch
search_methods :bug_active
## Rails 3.0 (and gems of that time) => 100%), 3.1 pretty sure
## Rails 3.2 error: "undefined method `not_in' for :resolution:Symbol"
scope :bug_active, lambda {|checked|
where(:resolution.not_in => ['ERWITHPM','WONTFIX','WORKSFORME','DATAFIXDEPLOYED','PATCHDEPLOYED','RELEASEDEPLOYED','DUPLICATE','INVALID'] \
, :bug_status.not_in => ['VERIFIED'] ) }
## Rewritten to work in Rails 3.2 without MetaSearch convenience inside of scope
## ... a pinch more work which is why we love MetaSearch!
scope :bug_active_why, lambda {|checked|
where("resolution not in (?)", ['ERWITHPM','WONTFIX','WORKSFORME','DATAFIXDEPLOYED','PATCHDEPLOYED','RELEASEDEPLOYED','DUPLICATE','INVALID'])
.where("bug_status not in (?)", ['VERIFIED'] )
}
end
module Bugzilla
class BugsController < ApplicationController
@p = params[:search]
## MetaSearch works fine here on ":resolution_not_in" from form/search
@p[:resolution_not_in] = ['WONTFIX','WORKSFORME']
@search = Bug
.limit(50)
.where("version like '2012_%p'")
.search(@p)
end
end