我有一个表单,该表单在填充时必须触发特定的查询,具体取决于表单具有的参数,因此我在模型中有一个方法,我相信它应该看起来像这样:
def form_query(params)
query = ''
if params.has_key?('size')
query = query.where(size: params['size'])
end
if params.has_key?('title')
query = query.where(title: params['title'])
end
# More conditionals depending on params.
end
我的问题是,query
一开始必须具备什么条件?我放了query = ''
,但是我想知道基本情况是什么,所以我可以有条件地添加更多的“ where”子句。
查询不是字符串。它们是查询对象。所以你想要像
query = YourModel.scoped # Rails 3; in Rails 4, use .all
if params.has_key?('size')
query = query.where(size: params['size'])
end
等等。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句