我將過濾功能放入應用程序(Rails 4.1beta) - 我通過在Item模型上創建作用域,通過請求參數傳遞作用域並在索引行動。這一切都有效,但是我試圖擺脫其中一個控制器的索引操作中的代碼味道;減少軌道控制器中的作用域過濾器
def index
case params[:scope]
when "recent"
@items = Item.recent
when "active"
@items = Item.active
when "inactive"
@items = Item.inactive
else
@items = Item.all
end
end
這一切都覺得有點過於僵硬/冗長。我真的很想做這樣的事情;
def index
@items = Item.send(params[:scope])
end
但是隨後我將應用程序全部公開給調用Item類的方法的人。在那裏的打擊條件有點擊敗了我想要實現的目標。
是否有一些軌道魔法我錯過了,可以幫助我嗎?