我试图传入一些实例变量来调用具有该特定对象属性的API。用户填写其创建报价对象的汽车详细信息(品牌,型号和年份)。这应该是传递到埃德蒙的API来检索该车的信息。代码工作正常,如果我将它设置为特定的品牌/型号/年份,但我无法将其返回给已创建商品对象的信息。将实例变量传递到rails中的API
这里是我的控制器:
def show
@offer = Offer.find(params[:id])
@wanted_ad = WantedAd.find(params[:wanted_ad_id])
@make = @offer.ownermake
@model = @offer.ownermodel
@year = @offer.owneryear
respond_to do |format|
format.html # show.html.erb
format.json { render json: @offer }
end
end
这是我的模型:
class Offer < ActiveRecord::Base
attr_accessible :user_id, :wanted_ad_id, :estvalue, :image1, :offerprice, :ownercartype, :ownerdesc, :ownermake, :ownermileage, :ownermodel, :owneryear
belongs_to :user
belongs_to :wanted_ad
has_one :car
def self.carsearch
@car = []
carinfo = HTTParty.get("http://api.edmunds.com/v1/api/vehicle/#{make}/#{model}/#{year}?api_key=qd4n48eua7r2e59hbdte5xd6&fmt=json")
carinfo["modelYearHolder"].each do |p|
c = Car.new
c.make = p["makeName"]
return carinfo
end
end
end
我的汽车模型很简单:
class Car < ActiveRecord::Base
attr_accessible :make, :model, :year
belongs_to :offer
end
而且我试图从调用它查看文件<%= Offer.carsearch %>
。我可能各种各样的搞砸了,但这是我第一次使用API,我很迷茫。
我的第一个问题是,为什么'carsearch'是Offer类中的类方法而不是实例方法?也就是说,为什么'def self.carsearch'而不是'def carsearch'? – 2013-04-21 21:55:00
我已经尝试过两种都没有工作:\这是一个徒劳的尝试。 – jenno 2013-04-21 22:06:25