0

我为我的应用程序创建了一个控制器和一个模型。我想以 json 格式获取数据。我在哪里可以看到我的输出?如果我运行控制器,它不会响应。我正在列出文件。最后,我想products从数据库中以 json 格式从表中获取数据。如何获取我的数据?

我的控制器:

class ShoppingDemo < ApplicationController

  def index
    @lists=Product.all;
    respond_to do |format|
      format.html
      format.json { render json: @lists}
    end
   end

   def show
    @products = products.find(params[:prod_id])

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

end


My Model:

class product < Activerecord::Base
  attr_accessible :model_name, :brand_name, :price, :discount, :qty_available
end

show.html.erb


<p>
  <b>model_name:</b>
  <%= @products.model_name %>
</p>

<p>
  <b>Brand_name:</b>
  <%= @products.brand_name %>
</p>

<p>
  <b>Price:</b>
  <%= @products.price %>
</p>

<p>
  <b>Discount:</b>
  <%= @products.discount %>
</p>

<p>
  <b>Quantity:</b>
  <%= @products.qty_available %>
</p>
4

2 回答 2

1

首先,您在 show 方法中的查询是完全错误的。
编写 show 方法如下:

def show
  @products = Product.find(params[:prod_id])

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

并写<%= @products.to_json %>在你的 show.html.erb 中。
否则,您可以通过.json在 url 中添加扩展名来检查。例如:http://localhost:3000/shopping_demos/1.json

于 2012-12-11T10:24:24.023 回答
0

在 products_controller.rb 文件中写入以下内容。

  def index
   @products = Product.all

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

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


在您的 routes.rb 文件中添加以下行。
resources :products

并相应地进行。

我发现你对 ruby​​ on rails 不太了解。请看一下文件。
http://guides.rubyonrails.org/

于 2012-12-11T11:22:34.143 回答