Rails 3.0.9:抽象购物车路线

时间:2011-08-04 07:28:11

标签: ruby-on-rails ruby-on-rails-3 routes

我正在开发一个电子商务rails应用程序,我正在尝试抽象我的购物车的路线,特别是ids。

购物车表:

  • id:int,not null,主键
  • hash_id:string(255)

我需要hash_id作为渲染推车控制器的show动作的唯一方法。

我目前正在尝试使用以下代码完成此操作:

#routes.rb
match 'carts/:hash_id' => 'carts#show'

#carts_controller.rb
def show
    @cart = Cart.find(params[:hash_id])
end

使用这段代码我仍然可以访问example.com/carts/1并且显示工作正常但是当我尝试访问example.com/carts/hash_id时它会抛出一个ActiveRecord :: RecordNotFound异常。

所以,假设有一个购物车:id => 1和:hash_id => 2414e80f5d9ccaf3我的预期行为是example.com/carts/2414e80f5d9ccaf3将为ID为1的购物车呈现购物车控制器的show动作。

1 个答案:

答案 0 :(得分:2)

尝试@cart = Cart.find_by_hash_id(params[:hash_id])