【发布时间】:2011-08-04 15:32:32
【问题描述】:
我正在开发一个电子商务 Rails 应用程序,我正在尝试抽象我的购物车的路线,尤其是 id。
购物车表:
- id :int,非空,主键
- hash_id :string(255)
我需要 hash_id 是呈现购物车控制器的显示操作的唯一方法。
我目前正在尝试使用以下代码来完成此操作:
#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.
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 routes