缺少所需的密钥

Alb*_*Alb 1 ruby ruby-on-rails

Rails新秀在这里.尝试从导航栏中的图像链接到购物车显示页面.代码:

<%= link_to(image_tag("cart.png"),cart_path) %> 
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

No route matches {:action=>"show", :controller=>"carts"} missing required keys: [:id]
Run Code Online (Sandbox Code Playgroud)

我的推车控制器从这开始:

def show
   begin
     @cart = Cart.find(params[:id]) 
Run Code Online (Sandbox Code Playgroud)

你向导的任何见解都会很棒.

Ege*_*soz 7

既然你说你是新手,我会详细解释.这个说法:

@cart = Cart.find(params[:id])
Run Code Online (Sandbox Code Playgroud)

意思是"查看数据库并找到ID为X的购物车".但是,当你这样做时:

<%= link_to(image_tag("cart.png"),cart_path) %> 
Run Code Online (Sandbox Code Playgroud)

你没有提供那个id.这就是为什么它会给你这个错误.

我不知道你的路由是如何定义的,但是你可以这样做:

<%= link_to(image_tag("cart.png"),cart_path(cart_id_here) %>
Run Code Online (Sandbox Code Playgroud)

这是一种说法,"id为X的购物车的路径".