abh*_*hir 0 ruby controller ruby-on-rails
可能是一个愚蠢的问题,所以我提前为此道歉:
我有一个Item Controller索引动作我用来显示所有items(duh).现在,我想过滤显示的项目(这里只是标题中有"鞋子"的项目).
不幸的是,我无法在索引操作下定义@item = Item.find(params [:id])语句.
我在ItemsController #index中得到了可怕的ActiveRecord :: RecordNotFound ----找不到没有ID错误的Item.
有任何想法吗?
物品控制器
def index
@item = Item.find(params[:id])
@items = Item.where(@item.title =~ /shoes/i).paginate(:page => params[:page], :per_page => 30)
respond_to do |format|
format.html # index.html.erb
format.json { render json: @items }
end
end
Run Code Online (Sandbox Code Playgroud)
这实际上就是你想要的.你尝试过什么都没有意义.
def index
@items = Item.where("title ILIKE '%shoes%'").paginate(:page => params[:page], :per_page => 30)
respond_to do |format|
format.html # index.html.erb
format.json { render json: @items }
end
end
Run Code Online (Sandbox Code Playgroud)
编辑:
在某种方式与所有受支持的数据库兼容,似乎你可以做这样的事情
item=Item.arel_table
Item.where(item[:title].matches('%shoes%'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |