我有一個類,事件,有一個領域starts_at說事件何時開始,在日期時間。 Rails的3.0版本這個類的看上去開始如下:如何編寫Rails 3的範圍在Rails 4格式
class Event < ActiveRecord::Base
scope :between, lambda {|start_time, end_time|
{:conditions => ["? < starts_at < ?", Event.format_date(start_time), Event.format_date(end_time)] }
}
在事件控制器,時限內使用該索引的事件如下:
class EventsController < ApplicationController
# GET /events
# GET /events.json
def index
@events = Event.scoped
@events = Event.between(params['start'], params['end']) if (params['start'] && params['end'])
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @events }
end
end
我如何重寫Rails 4的lamda,尤其是「:condition =>」,以便將其範圍在開始和結束時間之間,如(相當直接的)原始lamda所示。我瞭解原始內容,但我無法考慮如何使用「where(...)」在兩次限制之間獲得時間,正如之前對條件所做的那樣。
此外,我現在在控制器中使用Event.scoped已棄用?
非常感謝。
即使在Rails 3中也是舊式的語法... – sevenseacat