ActiveResource模型中的默认范围

时间:2014-09-29 21:14:38

标签: ruby-on-rails activeresource

我正在使用ActiveResource来实现客户端后端。在服务器端有API,有些模型有范围。 在ActiveResource模型中使用这些范围的最佳方法是什么?

例如:服务器端的模型Track的范围为:active_tracks。我在客户端模型名为ActiveTrack。我应该在ActiveTrack模型中做些什么来仅从:active_tracks(默认情况下)获取API范围内的曲目,而不是所有曲目?

我的解决方案是:

我在客户端添加了一个params [:scope]参数。

在服务器端TracksController我做了:

custom_scope = params[:scope] if params[:scope].exist?
Track.respond_to?(custom_scope) ? Track.send(custom_scope).all : Track.all

我使用Track.all因为:

  • 如果服务器端没有这样的范围,我需要获得结果,就像没有范围发送
  • 服务器具有默认分页

这是一个好的解决方案吗?

0 个答案:

没有答案