【问题标题】:Displaying products by category in Rails在 Rails 中按类别显示产品
【发布时间】:2012-07-18 21:52:58
【问题描述】:

Rails 初学者在这里。我想显示属于特定类别的所有产品的列表。我想保持简单,所以每个产品只有一个类别。当我显示类别时,产品在那里,但它们出现在一个数组中,如下所示:

名称:焊接

类别 ID:2

Products: [#>"hacksaw.jpg", price: #, created_at: "2012-07-14 >> 22:34:07", updated_at: "2012-07-17 22:18:14", category_id: 2, category_name: nil>, #>title: "Torch", description: "焊接Torch", image_url: "torch.jpg", 价格: >>#, created_at: "2012-07-15 08:40:05", >>updated_at: "2012-07-15 08:40:05", category_id : 2, category_name: nil>]

这是类别/show.html.erb:

<p>
  <b>Products:</b>
  <%= @category.products %></p>
</p>

类别控制器:

def show
  @category = Category.find(params[:id])

  respond_to do |format|
    format.html # show.html.erb
    format.json { render json: @category }
  end
end

我想要做的只是显示产品名称列表,但是当我在 show.html.erb 中尝试时:

<p>
    <b>Products:</b>
    <%= @category.product.name %></p>
</p>

...我收到以下错误:

#<0x007ff03cd59e98>

    标签: ruby-on-rails ruby-on-rails-3.2


    【解决方案1】:

    您需要遍历您的@category.products@category.products 将为您提供属于@category 的所有Product 模型。

    @categoryCategory拥有一组Products)不会响应product——它不知道那是什么。它只知道它有一堆Products。

    <% @category.products.each do |product| %>
        <p>
            <b>Product:</b>
            <%= product.name %>
        </p>
    <% end %>
    

    【讨论】:

    • Cheers Edd,解释得好就很简单。
    【解决方案2】:

    这与我一直在研究的类似。这可能有助于比较。

    show.html.erb

         <p>
          <b>Title:</b>
          <%= @product.title %>
        </p>
    
        <p>
          <b>Description:</b>
          <%= @product.description %>
        </p>
    
        <p>
          <b>Image url:</b>
          <%= @product.image_url %>
        </p>
    
        <p>
          <b>Price:</b>
          <%= @product.price %>
        </p>
    

    控制器

      def show
        @product = Product.find(params[:id])
    
        respond_to do |format|
          format.html # show.html.erb
          format.json { render json: @product }
        end
      end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-13
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-21
      • 1970-01-01
      相关资源
      最近更新 更多