在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
我希望我的预订可以根据另一位帮助者的输出订购asc或desc:
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的结果中替换以确定是否订购了预订asc或desc?
由于
答案 0 :(得分:3)
Booking.all(order: sort_column.send(sort_direction))