2011-11-03 50 views
0

我有一个应用程序,用户在其中选择他们希望查看的产品。产品如何使用REST Rails传递参数

  1. 视图索引,并选择一个
  2. 的产品展示动作被调用,show.html.erb被观看。 url =>/products/3

现在,如果用户点击产品的索引,他们将再次显示所有产品。但我希望他们能够轻松地返回到他们正在查看的产品。

为产品指数的网址:/产品 我不能添加的产品ID,因为这将不显示的索引页:/产品/ 3 会去看演出页的产品ID为3

是否有url中整齐地保留此信息,而无需做这样丑陋的东西的好方法:

/产品的product_id = 3

+0

从描述中很难理解你想要什么。您可以在服务器上存储用户交互的历史记录并相应地生成视图。为什么你需要以任何方式更改资源的URL? – Zepplock

回答

1

如何存储在会话中的数据?

class ProductsController 
    def index 
    @products = Product.all 
    end 

    def show 
    @product = Product.find(params[:id]) 
    session[:last_viewed_product] = @product.id 
    end 
end 

# Somewhere in your product layout 

<% if session[:last_viewed_product] %> 
    <%= link_to "View last product", product_path(session[:last_viewed_product]) %> 
<% end %> 
+0

我想尽量避免使用会话,如果可能的话由于其他原因。不过这是个好主意。 – chell