如何显示特定产品?

时间:2019-05-28 05:16:36

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

我试图通过从列表中单击来显示特定产品

<ul>
    <% products.each do |product| %>
    <tr>

        <a href="<%= products_path(@product) %>"><%= product.title %> .   </a>
        <br/>

    </tr>
    <% end %>
</ul>

预期结果应为products/1,但结果应为products.1,并应显示产品列表

4 个答案:

答案 0 :(得分:1)

代替这个

 <a href="<%= products_path(@product) %>"><%= product.title %> .   </a>

使用rails标准方式

<%= link_to product.title, product_path(product)  %>

答案 1 :(得分:0)

products_path(@product)应该是products_path(product)

答案 2 :(得分:0)

如果您要以这种方式代替

<ul>
    <% products.each do |product| %>
    <tr>

        <a href="<%= products_path(@product) %>"><%= product.title %> .   </a>
        <br/>

    </tr>
    <% end %>
</ul>

尝试

<ul>
    <% products.each do |product| %>
    <tr>

        <a href="/products/#{product.id}"><%= product.title %></a>
        <br/>

    </tr>
    <% end %>
</ul>

但是您可以这么做

<ul>
    <% products.each do |product| %>
    <tr>

        <%= link_to product.title, product_path(product) %>

        <br/>

    </tr>
    <% end %>
</ul>

<ul>
        <% products.each do |product| %>
        <tr>

            <%= link_to product.title, product %>

            <br/>

        </tr>
        <% end %>
    </ul>

以及您应指定的路线

resources :products

答案 3 :(得分:0)

如果您的路线使用 resources:products ,则可以简单地使用

  

无需使用任何路径。只需使用Product对象。

注意:在控制器方法中,应调用“显示”。