Ruby on rails 如何在RubyonRails内置的页面上过滤结果
我有一堆艺术品。我希望能够仅显示已售出的艺术品(这是我表格中的一列,:availability='Private collection')。我该怎么做?这就是我迄今为止所尝试的: 在artworks_controller.rb中创建“售出”操作:Ruby on rails 如何在RubyonRails内置的页面上过滤结果,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有一堆艺术品。我希望能够仅显示已售出的艺术品(这是我表格中的一列,:availability='Private collection')。我该怎么做?这就是我迄今为止所尝试的: 在artworks_controller.rb中创建“售出”操作: def index if params[:tag] @artworks = Artwork.tagged_with(params[:tag]) elsif params[:series] @artworks
def index
if params[:tag]
@artworks = Artwork.tagged_with(params[:tag])
elsif params[:series]
@artworks = Artwork.tagged_with(params[:series])
elsif params[:availability]
@artworks = Artwork.where(availability: 'Private collection')
else
@artworks = Artwork.all
end
end
def sold
@artworks = Artwork.where(availability: 'Private collection')
end
routes.rb:
get 'sold' => 'artworks#index', :as => 'sold'
我知道我将艺术品标记为这些单独的选项,它们正确地显示在我的展示页面上(这是我的表格):
[‘可供购买’、‘私人收藏’、‘不可出售’],:as=>:单选按钮%>
所有这一切似乎并没有破坏任何东西,但也不允许我只看到那些在我到达时出售的艺术品。我做错了什么?这当前路由到文章索引:
get 'sold' => 'artworks#index', :as => 'sold'
因此,它在索引操作中使用您的查询,并且在没有参数的情况下,它获取所有参数。因此,您需要将其发送到销售操作:
get 'sold' => 'artworks#sold', :as => 'sold'
然后在控制器中,您可以告诉rails呈现索引视图
def sold
@artworks = Artwork.where(availability: 'Private collection')
render :index
end
它将使用索引视图,但与来自销售操作的查询一起使用。这确实很有帮助。非常感谢。
def sold
@artworks = Artwork.where(availability: 'Private collection')
render :index
end