:id => routes.rb中的'current'

时间:2012-02-27 21:00:19

标签: ruby-on-rails routes

我遇到了一个demo,其中包含以下行:

 map.current_cart 'cart', :controller => 'carts', :action => 'show', :id => 'current'

id设置为'current'是否会通过某种魔法调用函数current_cart

application_controller.rb:

 def current_cart
  session[:cart_id] ||= Cart.create!.id
  @current_cart ||= Cart.find(session[:cart_id])
 end

1 个答案:

答案 0 :(得分:0)

carts_controller。方法current_cart来自行动show。所以没有任何魔法:它只是从行动中调用方法,它会执行下一步:

  1. 创建购物车(如果尚未存在)
  2. 在会话中存储此购物车的ID
  3. 在实例变量@current_cart中缓存购物车。它也可以在任何视图中使用
  4. 在购物车的实例变量
  5. 中返回
  6. 将此返回保存为@cart
  7. 的show action中的carts_controller变量