Ruby on rails 如何根据单击的类别筛选和显示所有产品
请帮助我解决这个问题,我想根据这样的分类展示产品Ruby on rails 如何根据单击的类别筛选和显示所有产品,ruby-on-rails,ruby,Ruby On Rails,Ruby,请帮助我解决这个问题,我想根据这样的分类展示产品 eg: products -sarees -salwars Rails.application.routes.draw do resources :products end 当我点击sarees时,我想显示与sarees相关的所有产品;当我点击Salwars时,我想显示与Salwars相关的所有产品 这是我的密码 show.html.slim li a href="#{shop
eg: products
-sarees
-salwars
Rails.application.routes.draw do
resources :products
end
当我点击sarees时,我想显示与sarees相关的所有产品;当我点击Salwars时,我想显示与Salwars相关的所有产品
这是我的密码
show.html.slim
li
a href="#{shop_index_path}"
| Product
span.arrow ▼
ul.sub-menu
- @category.each do |cat|
li
a href="#"
=cat.name
myproductscontroller.rb
def show
@category = Category.all
end
class Category < ActiveRecord::Base
has_many :products
end
class Product < ActiveRecord::Base
belongs_to :category
end
我的型号category.rb
def show
@category = Category.all
end
class Category < ActiveRecord::Base
has_many :products
end
class Product < ActiveRecord::Base
belongs_to :category
end
类别
型号产品.rb
def show
@category = Category.all
end
class Category < ActiveRecord::Base
has_many :products
end
class Product < ActiveRecord::Base
belongs_to :category
end
类产品@sreena,我首先建议让它尽可能简单,然后再将AJAX
添加到组合中
假设您的routes文件如下所示
eg: products
-sarees
-salwars
Rails.application.routes.draw do
resources :products
end
将show.html.slim
更改为index.html.slim
并编辑:
ul.sub-menu
- @categories.each do |cat|
li
= link_to cat.name, category_path(cat)
以及您的产品\u controller.rb
:
def index
@categories = Category.all
end
def show
@category = Category.find(params[:id])
end
现在您有了一个基本的索引
和显示
工作
在您使用了AJAX
之后,如果这不是一个问题的话。@sreena,我会首先建议让它尽可能简单,然后再将AJAX
添加到混合中
假设您的routes文件如下所示
eg: products
-sarees
-salwars
Rails.application.routes.draw do
resources :products
end
将show.html.slim
更改为index.html.slim
并编辑:
ul.sub-menu
- @categories.each do |cat|
li
= link_to cat.name, category_path(cat)
以及您的产品\u controller.rb
:
def index
@categories = Category.all
end
def show
@category = Category.find(params[:id])
end
现在您有了一个基本的索引
和显示
工作
在您使用了AJAX之后,如果这不是一个问题的话。一种方法是为类别下的产品使用嵌套控制器。比如category/:category\u id/产品。因此,在这条路线上搜索将直接搜索供应类别下的所有产品。
在锚定标签上,您将希望使用
- @category.each do |cat|
li
=link_to cat.name, category_products_path(cat), remote: true
#products
在产品控制器中,我们定义了一个索引操作
def index
@category = Category.find(params[:category_id])
@products = @category.products
end
要显示产品,请定义products/index.js.slim
$('#products').html('#{escape_javascript(render(@products))}');
和products/_product.html.slim部分
li
= product.name
实现这一点的一种方法是为类别下的产品使用嵌套控制器。比如category/:category\u id/产品。因此,在这条路线上搜索将直接搜索供应类别下的所有产品。
在锚定标签上,您将希望使用
- @category.each do |cat|
li
=link_to cat.name, category_products_path(cat), remote: true
#products
在产品控制器中,我们定义了一个索引操作
def index
@category = Category.find(params[:category_id])
@products = @category.products
end
要显示产品,请定义products/index.js.slim
$('#products').html('#{escape_javascript(render(@products))}');
和products/_product.html.slim部分
li
= product.name
您可以触发类别的change
事件,并发送ajax
请求以查找所属产品并进行替换。您可以触发类别的change
事件,并发送ajax
请求以查找所属产品并进行替换。感谢您的帮助,很抱歉,这对我不起作用。我没有分类控制器,只是我通过种子添加分类数据。RBI通过种子添加很好。rb
但是应该有一个控制器来处理请求:-)谢谢你的帮助,bt很抱歉这对我不起作用。我没有分类控制器,只是通过种子添加分类数据。rbit很好,您可以通过种子添加。rb
但是应该有一个控制器来处理请求:-)