2011-12-27 2 views
1

Ruby on Rails - FindHorsesForSale.net에 말 검색 사이트가 내장되어 있으며 다음과 같은 활동 기록 시스템을 만들고 싶습니다. - 목록이 표시된 횟수 검색 결과 - 세부 정보 페이지에 목록이 표시된 횟수 - 검색 결과의 각 위치에 대한 클릭률Ruby on Rails 검색 사이트의 활동 로깅 시스템

앱은 Heroku에서 호스팅됩니다. 위의 질문에 대답하기 위해 확장 가능한 것을 구축하는 방법에 대한 권장 사항은 무엇입니까?

답변

1

가장 좋은 방법은 hit_type 필드를 포함하여 조회수를 계산하기위한 또 다른 Model이 검색의 조회수와 프로필 조회수 사이에 다른 것으로 생각합니다. 이 모델은 다음과 같을 수 있습니다 :

Hit hit_type:string user_agent:string ip:string horse_id:integer` 

는 그런 다음 has_many를 통해 Horse 모델과 Hit 모델을 연결하고 검색 행동에 당신은 또한 각각의 새로운 히트 개체를 각각 발견 말에 대한 hit의 새로운 객체를 생성하고 프로필보기. 유일한 차이점은 예를 들어 "검색"과 "프로필"일 수있는 hit_type입니다. 그럼 당신은 Hit 모델 모두에 대한 범위를 작성할 수

scope :searched, where("hit_rype = ?", "search") 
scope :viewed, where("hit_type = ?", "view") 

그럼 당신은 쉽게 말 뷰를 확인할 수 있습니다 :

horse.hits.searched.count # returns count of views 
horse.hits.viewed # returns count of profile views 

희망이 당신을 도와줍니다!

// 귀하의 사이트를 살펴 보았습니다. 당신의 웹 사이트를 가진 당신의 일을하는 경우에 당신은 SEO에 관하여 알아야한다 그래서 당신은 찾아 냈다! 귀하의 모든 도메인 이름은 camelCase를 사용하지만 google은 도메인 이름, 단어 등으로 camelCase를 인식합니다 ... 단지 힌트

+0

업데이트 ................. – davidb

+0

응답 해 주셔서 감사합니다. 검색 결과 페이지가 표시 될 때마다 20 개의 히트를 작성하면 원하는 작업이 아니라 페이지로드가 느려지는 것 같습니다. 그것을 잘 수행하는 방법에 대한 제안? 아마도 delayed_job 또는 비슷한 것을 통해 모든 것을 호출 할 것입니까? – DougB

+0

시도해보십시오. 유사한 응용 프로그램을 사용하면 응용 프로그램이 느려지지 않습니다. 페이지가로드 될 때마다 100 개체가 사라집니다! – davidb