sinatra或Rails应用程序:简化分类结果



我有一个Sinatra应用程序,但我想这个问题在RoR中也是有效的。在应用程序中,用户可以看到他的支出,按date,amountname的顺序。

在控制器中,我有3条get路由对应于这些可能的订单(默认是每个日期)。

这意味着当用户选择"per amount"例如,将请求发送到服务器,然后使用相应的SQL查询发送到数据库。虽然它有效,但我想知道这是否是最有效的方法。

使用params散列使其更易于维护。

get '/spendings' do 
@spendings = Spending.where(user_id: current_user.id)
# Make date the default sort
sort = 'date'
sort = params[:sort] if params[:sort].in?(['amount', 'name'])
@spendings = @spendings.order(sort)
end

你必须使用的url就像

example.com/spendings?sort=date
example.com/spendings?sort=amount
example.com/spendings?sort=name

最新更新