나는 검색어에 따라 500px의 API에서 사진을 가져 와서 결과를 db에 저장하는 Rails 앱을 만들고 있습니다. 사진과 검색의 두 가지 모델이 있습니다. 생성 된 search_term의 ID를 가져 와서 각 사진에 저장해야하므로 둘 사이에 연관이 있습니다.생성 된 레코드에서 ID를 가져 와서 컨트롤러의 다른 레코드에 저장하십시오.
다음은 사진 모델입니다.
class Photo < ActiveRecord::Base
self.per_page = 12
validates :uniqueid, :presence => true, :uniqueness => true
validates :name, :presence => true
validates :times_viewed, :presence => true
validates :rating, :presence => true
validates :votes_count, :presence => true
validates :favorites_count, :presence => true
validates :image_url, :presence => true, :uniqueness => true
has_one :search
end
여기는 검색 모델입니다.
class Search < ActiveRecord::Base
validates :search_term, :presence => true
has_many :photos
end
은 내가 특정 용어를 검색 한 횟수를 추적 할 필요가있다, 그래서 내가 다시 때마다 결과의 같은 페이지를받지 못했습니다 보장 할 수 있습니다. 사진을 가져 오는에 대한
컨트롤러는 다음과 같습니다 : 내가 생성 된 검색어의 ID를 가져,이 save_photos 방법 내의 각 사진에 그 내용을 저장하기 만하면 무엇을 본질적으로
def index
@search = params[:search]
if @search
# I need to fetch the id of this search term
Search.create search_term: @search
@json_response = JSON.parse(get_access_token.get("/v1/photos/search?term=#{CGI.escape @search}&rpp=100&image_size=4&sort=times_viewed").body)
save_photos @json_response
end
end
.
def save_photos json_response
json_response['photos'].each do |photo|
Photo.create uniqueid: photo['id'],
name: photo['name'],
description: photo['description'],
times_viewed: photo['times_viewed'],
rating: photo['rating'],
votes_count: photo['votes_count'],
favorites_count: photo['favorites_count'],
image_url: photo['image_url'],
photo_taken: photo['created_at'],
category: photo['category'],
privacy: photo['privacy'],
comments_count: photo['comments_count'],
nsfw: photo['nsfw'],
# I’d like to save the id of the search term here
Search.create search_id: @search
end
end
사과이 중복 질문이나 눈에 띄게 간단한 경우 -이 문제와 검색 무엇을 알고로 막 다른 골목에 왔어요.
완벽하게 속임수를 썼습니다. 감사합니다. – gosseti