我正在开发一个应用程序,其中有两个模型:移动Brand
和移动Product
。每个品牌has_many :products
。
在索引页面中,我显示所有产品,左侧我想显示其他购物卡的范围,例如:
按价格搜索
- 10000-15000
- 15000-20000
- 20000-25000
- 价格> 25000
按内容搜索
- 256 mb
- 512 mb
按Cam搜索
- 13 MP
- 8 MP
- 5 MP
按屏幕搜索
- 少于3英寸
- 3.0英寸 - 4.0英寸
- 4.1英寸 - 4.9英寸
像这样我想在点击任何链接时显示它会显示详细信息。
所以请帮我如何在产品控制器中编写,它需要在控制器和不同的视图页面中创建不同的动作。 所以给我一些代码想法怎么做。
答案 0 :(得分:0)
您可以使用范围来解决此问题。我将向您展示如何使用价格范围进行过滤,并且我相信相同的过程可以用于其他过滤器。
在product
型号
class Product < ActiveRecord::Base
## other code
scope :price_min, lambda{|min| where(['price >= ?', min])}
scope :price_max, lambda{|max| where(['price <= ?', max])}
## other code
end
products_controller.rb
中的有这个:
class ProductsController < ApplicationController
has_scope :price_min
has_scope :price_max
def index
@products = Product.all
end
## other code
end
你的app/views/products/index.html.erb
中的有这个:
<%= link_to '10000-15000', @products_path, price_min: 10000, price_max: 15000 %>
<%= link_to '15000-20000', @products_path, price_min: 15000, price_max: 20000 %>
<%= link_to '20000-25000', @products_path, price_min: 20000, price_max: 25000 %>
修改强> 还要确保在Gemfile中有这个
gem 'has_scope'
然后运行bundle命令。