その特定のオブジェクトの属性を持つ API を呼び出すために、いくつかのインスタンス変数を渡そうとしています。ユーザーが車の詳細 (メーカー、モデル、年式) を入力すると、オファー オブジェクトが作成されます。これは、その車の情報を取得するために Edmund の 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 を使用するのはこれが初めてであり、非常に迷っています。