我正在使用一个新的Rails项目&旧的已建立的Oracle数据库使用适配器:oracle_enhanced。希望能够对数据库进行动态搜索,具体取决于可用于搜索的信息/字段。
我想从
获得http://www.abc.com/order/show?acct_num=a123&po_num=789z
并创建一个对象,例如
class Order
attr_reader :customer_name, :acct_num, :order_date, :po_num, :qty.
end
我有来自 request.query_parameters 哈希表的参数。
现在,如果我走错路径,我想要做的是使用查询字符串,并能够找到所有订单,其中acct_num_in_model = acct_num_from_query_string和po_num_from_model = po_num_from_query_string等。如果某些东西是空的,例如po_number则返回全部与acct_number匹配,如果acct_num为空,则匹配该po。我期待以下内容:
abc.com/order/show?acct_num=a123&po_num=789z
使用acct_num = a123和po_num = 789z
返回所有订单abc.com/order/show?acct_num=a123 使用acct_num = a123
返回所有订单abc.com/order/show?po_num=789z
使用po_num = 789z
返回所有订单abc.com/order/show?po_num=789z&qty=6
使用po_num = 789z&返回所有订单数量= 6
答案 0 :(得分:1)
鉴于你想使用rails,我建议:
QUERY_WHITELIST = ['po_num','qty','acct_num']
Order.find :all, :conditions => params.slice(*QUERY_WHITELIST)
或
QUERY_WHITELIST = ['po_num','qty','acct_num']
Order.all :conditions => params.slice(*QUERY_WHITELIST)
取决于您的Rails版本。