Hom*_*ith 3 ruby ruby-on-rails rails-activerecord
我有一个表单,当填充时必须触发一个特定的查询,取决于表单具有哪些参数,所以我在我的模型中有一个方法,我认为应该是这样的:
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
Run Code Online (Sandbox Code Playgroud)
我的问题是,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
Run Code Online (Sandbox Code Playgroud)
等等
| 归档时间: |
|
| 查看次数: |
3511 次 |
| 最近记录: |