Ich habe ein Order-Modell in meiner Ruby on Rails-Anwendung, die mehrere Attribute hat. Ich möchte diese Bestellungen nach Parametern abfragen, die von Benutzern wie itemCount, totalPrice und created date angegeben wurden.Ruby, aktives Modell dynamisch abfragen
Wenn eines dieser Attribute gegeben ist, ich meine es nicht Null ist, muss ich Modell abfragen, indem Sie es.
Ich kann so etwas tun:
if params[:totalPrice] and params[:itemCount] and params[:created_date]
@product = Product.where(totalPrice: params[:totalPrice],itemCount: params[:itemCount],created_date: params[:created_date])
elsif params[:totalPrice] and params[:itemCount]
@product = Product.where(totalPrice: params[:totalPrice],itemCount: params[:itemCount])
elsif params[:totalPrice] and params[:created_date]
@product = Product.where(totalPrice: params[:totalPrice],created_date: params[:created_date])
elsif params[:itemCount] and params[:created_date]
@product = Product.where(itemCount: params[:itemCount],created_date: params[:created_date])
elseif ....(and continues)
Ich kann aber nicht darüber sicher sein. Vielleicht gibt es dort einen "Ruby" Weg, um dieses Problem zu lösen.
Was ist die beste Praxis zu tun,
Dank.
Vielleicht nicht eine exakte Kopie, aber nahe genug IMO. –