【发布时间】:2013-12-05 20:17:54
【问题描述】:
我有以下Pixel 模型具有以下属性media、page、disabled、selective
我正在寻找最可重用的方法来进行 API 调用,该调用选择与 API 调用中传递的参数匹配的所有对象。 API调用可以带0个参数或任意数量的参数
这是我目前所拥有的。我相信它会起作用,但我绝对认为必须有更好的解决方案。
def pixels_by_params
if(params[:media] && params[:page] && params[:selective] && params[:disabled])
pixels = TrackingPixel.media(params[:media]).page(params[:media]).selective(params[:selective]).disabled(params[:disabled])
elsif(params[:media] && params[:page] && params[:selective])
pixels = TrackingPixel.media(params[:media]).page(params[:media]).selective(params[:selective])
elsif(params[:media] && params[:page])
pixels = TrackingPixel.media(params[:media]).page(params[:media])
elsif(params[:media])
pixels = TrackingPixel.media(params[:media])
...
...
...
end
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 model-view-controller