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

sinatra or Rails app: simplify classification of results

我有一个 Sinatra 应用程序,但我想这个问题在 RoR 中也有效。在应用程序中,用户可以按 dateamountname.

的顺序查看他的支出

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

这意味着当用户选择“按金额”时,请求将发送到服务器,然后通过相应的 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

您必须使用的网址类似于

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