我为我的应用程序创建了一个控制器和一个模型。我想以json格式获取数据。我在哪里可以看到我的输出?如果我运行控制器它没有响应。我列出了这些文件。最后,我想以json格式从数据库中获取products
表中的数据。如何获取我的数据?
我的控制器:
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>
答案 0 :(得分:1)
首先,您在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
在show.html.erb中写下<%= @products.to_json %>
。
否则,您可以在网址中添加 .json
扩展名进行检查。例如:http://localhost:3000/shopping_demos/1.json
答案 1 :(得分: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
然后继续。
我发现你并不太了解铁轨上的红宝石。请查看该文档。
http://guides.rubyonrails.org/