我正在开发一个电子商务rails应用程序,我正在尝试抽象我的购物车的路线,特别是ids。
购物车表:
我需要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动作。
答案 0 :(得分:2)
尝试@cart = Cart.find_by_hash_id(params[:hash_id])