使用命令时:
@items = Item.find(:all,:order => 'name', :conditions => ["name LIKE ?", "%#{params[:key]}%"])
Run Code Online (Sandbox Code Playgroud)
这完全正常,但搜索仅基于一列.如何让它搜索其他列,如描述,类别?
我假设您使用的是Rails 2,因为您使用的是ActiveRecord 2样式语法.您可以添加其他列作为附加条件,如下所示:
key = "%#{params[:key]}%"
@items = Item.find(:all, :conditions => [
'name LIKE ? OR description LIKE ? OR category LIKE ?',
key, key, key
], :order => 'name')
Run Code Online (Sandbox Code Playgroud)
作为参考,以下是如何在Rails 3中执行此操作:
key = "%#{params[:key]}%"
@items = Item.where('name LIKE ? OR description LIKE ? OR category LIKE ?', key, key, key).order(:name)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1754 次 |
| 最近记录: |