【发布时间】:2013-02-13 16:24:26
【问题描述】:
在 Sinatra 中,我有一个简单的助手来返回一个符号:
def sort_column
params[:sort] ? params[:sort].to_sym : :client_id
end
我的预订是由以下人员订购的:
get '/bookings' do
@bookings = Booking.all(order: sort_column)
erb :bookings
end
我希望根据另一个助手的输出对我的 Booking 进行升序或降序排序:
def sort_direction
params[:direction] || "asc"
end
这个:
@bookings = Booking.all(order: sort_column.asc)
还有这个:
@bookings = Booking.all(order: sort_column.desc)
两者都可以正常工作。
但如果我使用:
@bookings = Booking.all(order: sort_column.sort_direction)
我得到一个私有方法错误,如果我尝试:
@bookings = Booking.all(order: sort_column + "." + sort_direction)
我得到一个“未定义的方法'+' for ...”错误
如何替换 sort_direction 的结果以确定 Booking 是按 asc 还是 desc 排序的?
谢谢
【问题讨论】: