0
我在我的模型之一使用回形針:回形針和JSON,「堆棧級別太深」
class Event < ActiveRecord::Base
belongs_to :continent
belongs_to :event_type
scope :continent, lambda { |continent|
self.scoped.where('continent_id IN (?)', continent) unless continent.blank?
}
scope :event_type, lambda { |eventType|
self.scoped.where('event_type_id IN (?)', eventType) unless eventType.blank?
}
scope :in_date, lambda { |date|
self.scoped.where('(MONTH(`date_start`) BETWEEN ? AND ?) OR (MONTH(`date_end`) BETWEEN ? AND ?)', date[0],date[1],date[0],date[1]) unless date.blank?
}
has_attached_file :map, :styles => { :medium => "238x238>",
:thumb => "100x100>"
}
end
我做出這個動作的Ajax請求:
def filter
@events = Event.scoped
@events = @events.continent(params[:continents]) unless params[:continents].blank?
@events = @events.event_type(params[:event_type]) unless params[:event_type].blank?
@events = @events.in_date(params[:months]) unless params[:months].blank?
respond_with(@events)
end
我把這個網址得到json的答案。當我做了,我得到的錯誤:「堆棧層面太深」
任何人都可以幫助我嗎?
我的蹤跡是在這裏:
http://paste.bradleygill.com/index.php?paste_id=316663
感謝您的回答,但是如何在控制器上使用該功能?這與lambda表達式一樣嗎? – Sebastien
@Sebastien:您可以像訪問命名範圍一樣訪問類方法,因此可以使用'Event.continent'。如果你想使用你的原始代碼,只需重命名你傳遞給'continent'範圍的參數 –
我仍然有我的錯誤,它來自has_attached_file:map,:styles => {:medium =>「238x238>」,: thumb =>「100x100>」} – Sebastien