在RoR中使用过滤分类进行查询可以通过使用ActiveRecord的查询方法来实现。以下是一个示例:
class Product < ApplicationRecord
enum category: { electronics: 0, clothing: 1, books: 2 }
scope :by_category, ->(category) { where(category: category) }
end
在上面的代码中,我们使用了enum
方法来定义了一个名为"category"的枚举属性,并指定了不同类别的值。然后,我们使用scope
方法定义了一个名为"by_category"的查询作用域,它接受一个参数"category",并返回指定类别的产品。
class ProductsController < ApplicationController
def index
@products = Product.by_category(:electronics)
end
end
在上面的代码中,我们调用了"Product"模型的"by_category"作用域,并传入了电子产品的类别。这将返回所有电子产品的列表,并将其赋值给实例变量"@products",以便在视图中使用。
@products
实例变量来显示查询结果。例如,你可以使用循环来遍历产品列表,并显示每个产品的相关信息:<% @products.each do |product| %>
<div>
<h3><%= product.name %></h3>
<p>Category: <%= product.category %></p>
<p>Price: <%= product.price %></p>
</div>
<% end %>
在上面的代码中,我们使用了循环来遍历@products
实例变量中的产品列表,并显示每个产品的名称、类别和价格。
这样,你就可以在RoR中使用过滤分类进行查询了。通过定义过滤分类方法,并在控制器中调用它们,你可以根据不同的类别来过滤和查询数据。请记住,这只是一个示例,你可以根据自己的需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云