Rails新手在这里。这个具体问题之前可能已被问过,如果不是在这里,那么在其他一些网站上,但经过四处寻找后,我找不到任何有用的东西,因为我缺乏描述我想要完成的内容的术语。我很抱歉,如果它是微不足道的。
基本上我有一个带有脚手架Item
的新创建的Rails项目(由rails g scaffold Item [...attributes...]
生成),我想创建一个额外的页面,类似于索引页面,但不是显示所有的我希望过滤项目的项目。因此,对于索引页面,控制器文件中的部分看起来像这样
def index
@items = Item.all
end
并且我想知道如何为我的其他页面(称为index2
)使用某种类似于find的方法的某种控制器只抓取具有某种特定的Items
属性,例如是"red"
中的color
:
def index2
@items = Item.find(color: "red") #all items that have red as their color attribute
end #are assigned to @items
我该怎么做?我在哪里可以找到更多操作(all()
,first
,second
,......除外)?感谢您的耐心等待。
答案 0 :(得分:1)
您可以向ItemsController添加操作
def red_items
@items = Item.where(color: "red")
end
您可以使用所有过滤器的位置
您必须向red_items.html.erb
添加一个名为/app/views/items
的视图,以便控制器自动呈现。如果要使用索引模板,则只需在新操作中显式呈现模板
def red_items
@items = Item.where(color: "red")
render :template => "index"
end
以下是Active Record Query Interface的链接,您可以在其中找到所有可能的查询方法