我正在我的应用程序中实现事件类别,现在我遇到了以下问题。如果用户输入一个现有的 URL(例如,'site/types/1'),他将进入所需的类别,但是如果他输入 site/types/asdf(一个不存在的 URL),他将得到一个空的索引页面,并且没有错误。我希望他得到 404 或错误页面,我知道如果使用“find_by!”,可以通过控制器中的一声巨响来实现。方法(对吗?)。但是我的查询有所不同,我似乎无法弄清楚原理。
如何使用范围和 lambda 进行更复杂的查询?谢谢
我有以下代码:
事件控制器
def index
if params[:type]
@events_future = Event.future_by_type(params[:type])
else
@events_future = Event.future_events
end
end
事件模型
scope :future_by_type, lambda { order(...).where(...) }
路由器
get 'types/:type', to: 'events#index', as: :type
resources :types, except: :show