【发布时间】:2015-07-29 08:53:51
【问题描述】:
基本上我有 4 个控制器:一个用于产品,一个用于该产品的类别,一个用于管理城市,一个用于将数据分发到前端(包含静态页面,主要逻辑是过滤显示结果)。
现在我的目标是同时按城市和类别过滤我的产品。我已经完成了将参数传递给 url 并在我的控制器中处理它们的基本解决方案。
/main/home.html.erb/
<%- City.all.each do |city|%>
<%= link_to city.name, url_for(category: params[:category], city: city.name)%>
<% end %>
<% Category.all.each do |category| %>
<%= link_to category.name, root_path(category: category.name, city: params[:city]) %>
在主控制器中,我有类似 Home 操作的内容:
def home
@city = City.all
@offers = Offer.all
@category = Category.all
if !params[:city].blank?
@city_id = City.find_by(name: params[:city]).id
@offers = Offer.where(city_id: @city_id).where(category_id: @category_id).order("created_at DESC").paginate(page: params[:page], per_page: 4)
end
if !params[:category].blank?
@category_id = Category.find_by(name: params[:category]).id
@offers = Offer.where(category_id: @category_id).where(city_id: @city_id).order("created_at DESC").paginate(page: params[:page], per_page: 4)
end
end
这就是过滤,但是在我被重定向到另一个页面后,我必须再次选择我的城市。如何为会话保存它?
是否有更合适的解决方案来处理此任务?
我应该怎么做才能让这件事发挥作用?
提前谢谢你。
【问题讨论】:
标签: ruby-on-rails ruby