我正在尝试渲染一个包含指向“产品”页面的链接的部分,该页面属于一个类别。如果我使用link_to方法的数组语法,则能够生成指向产品展示页面的链接,但是表底部还有一个指向产品索引页面的额外链接。
我目前正在使用link_to方法的数组语法来创建指向产品展示页面的链接。它可以工作,但是表底部有一个指向产品索引页的额外链接。如果没有产品,则链接仍在其自己的行中。如果确实存在产品,则该链接将在表底部的空白行中。
部分
<tr>
<td>
<%= product.product_name %>
</td>
<td><%= product.product_description %></td>
<td><%= product.product_price %></td>
<td><%= link_to 'Product page', [@category, product] %></td>
</tr>
视图
<table>
<tr>
<th>Product Name</th>
<th>Product Description</th>
<th>Product Price</th>
</tr>
<%= render @category.products %>
</table>
显示产品控制器的动作
def show
@category = Category.find(params[:category_id])
@product = Product.find(params[:id])
end
产品的展示路线
category_product GET /categories/:category_id/products/:id(.:format) products#show
产品路线的屏幕截图 output of rake routes | grep product
routes.rb
Rails.application.routes.draw do
root 'pages#index'
get 'pages/admin'
get 'show_customer/:id', to: 'categories#show_customer', as: :show_category_to_customer
resources :categories do
resources :products
end
resources :users
end
我希望有一个表,该表仅包含产品展示页面的链接,而没有指向产品索引页面的额外链接。我已经在局部中尝试了category_product_path(@category,product),但是我收到一个URLGenerationError表示产品ID为零。
对于在不获取额外链接的情况下如何生成链接的任何帮助,我们将不胜感激。
答案 0 :(得分:0)
您的路径需要产品的ID,但是您要提供未初始化的变量“产品”。 试用category_product_path(@ category,@ product)
答案 1 :(得分:0)
<tr>
<td>
<%= product.product_name %>
</td>
<td><%= product.product_description %></td>
<td><%= product.product_price %></td>
<td><%= link_to 'Product page', category_product_path(category_id: @category.id, id: product.id)%></td>
</tr>