sinatra - sinatra 或 Rails 应用程序:简化结果分类
问题描述
我有一个 Sinatra 应用程序,但我想这个问题在 RoR 中也是有效的。date
在应用程序中,用户可以按amount
或的顺序查看他的支出name
。
我是控制器,我有 3get
条路线对应于那些可能的订单(默认是每个日期)。
这意味着,例如当用户选择“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
您必须使用的网址类似于
example.com/spendings?sort=date
example.com/spendings?sort=amount
example.com/spendings?sort=name
推荐阅读
- mongodb - MongoDB:如何根据条件从链接集合中获取数据
- javascript - Froala 编辑器未显示正确的链接编辑按钮
- machine-learning - 自变量和因变量之间的关系
- python-3.x - 在scrapy中,我如何从json文件中产生附加值以及要传递给管道的抓取项目
- oracle-xe - 使用 IBM Integration Toolkit 中制作的应用程序从 Oracle XE 中选择数据
- php - 如何将 HTML 代码放入 PHP 中以进行可视化作曲家插件开发?
- javascript - 是否可以在浏览器中为 react 项目创建虚拟 fs?
- java - 通过 Glide 在活动之间共享图像
- reactjs - 如何使用另一个反应选择的值在反应选择中制作过滤器
- java - 使用循环使用jquery动态更新带有div的DOM