2010-05-02 4 views
2

내 양식의 여러 필드 (5-7)에서 자동 완성 기능을 사용하고 싶습니다. Ryan Bates (http://railscasts.com/episodes/102-auto-complete-association)의 Prototype 라이브러리로 자동 완료되는 스크린 캐스트가 있습니다. 반면에, 나는 많은 사람들이이 작업 (http://jquery.bassistance.de/autocomplete/demo/)을 위해 jQuery을 제안했다는 것을 알아 챘다. 작년에 개발이 있었기 때문에 폼 필드를 자동 완성하기 위해 요즘 어떻게 사용하겠습니까? 이유는 무엇입니까?Rails 앱에서 자동 완성을 위해 사용 하시겠습니까?

은 BTW, 난 여전히 HABTM 협회에 대한 자동 완성에 의문을 가지고 : How to do HABTM management with auto completion in Rails?

답변

1

면책 조항 : 나는 프로토 타입 자동 완성 플러그인과 경험이 없기 때문에이 답변이 질문 만의 jQuery 절반을 커버 나는 대답 할 수있는 전문 지식을 가진 사람에게 맡길 것입니다.

먼저, 이미 사용하고있는 프레임 워크에 작성된 플러그인을 사용하면 프로토 타입을 jquery로 바꿀 필요가 없으며 그 반대의 경우도 마찬가지입니다.

프레임 워크를 사용하고 있지 않거나 jQuery를 사용하고있는 경우에는 주로 제공되는 지원 및 확장 성을 중심으로 jQuery UI autocomplete (연결된 것과 다른)을 제안합니다.

플러그인이 형성되거나 어떤 코어 라이브러리 (이 경우 jQuery UI)에 삽입되면 어떤 프레임 워크를 보든 상관 없습니다. 더 많은 지원을 얻고 더 쉽게 커뮤니티를 구축 할 수 있습니다. 더 훌륭하고 확장 가능합니다. 또한 문제가 생기면 문제에 대한 답을 찾을 가능성이 높아집니다.

레일 부분에는 레일이있는이 자동 완성 플러그인을 사용하는 방법에 대한 기사가 있습니다 (I'd get started here).

2

나는 YUI auto-complete을 사용합니다. Yahoo, Flickr 및 기타 학년 A 웹 속성에 사용되는 산업력. 레일에서

성능

는 자동 완성에 최적의 성능을 위해 (사용 위젯 상관없이), 당신은 당신의 조회 정보에 대한 데이터베이스에서보기를 만들어야합니다. 예를 들어 자동 완성 기능을 사용하면 인간이 내용별로가 아니라 제목별로 빠르게 자신의 게시물을 검색 할 수 있습니다.

은보기 만들기 :
# Rake task code for creating a view 
def self.search_posts # 
    execute "DROP Table IF EXISTS search_posts" 
    execute "DROP View IF EXISTS search_posts" 
    execute "CREATE View search_posts AS 
    SELECT 
    p.id 
    , p.title 
    , p.user_id 
    FROM posts p 
    ORDER BY p.title 
    "  
end 

는 또한 SearchPost을위한 액티브 모델을 만들 수 있습니다. 그것은 전망에서 당길 것이다.

그런 다음 컨트롤러 :

# Return the id's and title's matching the search query 
# Assumptions: current user id is in Session[:user_id] 
#    Auto complete query is in params[:query] 
SearchPost.find_all(
    :conditions => ["user_id = ? and title LIKE ?", 
        Session[:user_id], "%#{params[:query]}%"] 
).collect{|rec| {'title' => rec.title, 'id' => rec.id}.to_json 

혜택

당신은 자동 완성 위젯을 보내는 Ajax 요청에 대한 DB를 통해 조회 된 데이터의 양을 최소화하고자합니다.브라우저에 포스트 제목과 ID의 전체 DB를 다운로드하여 로컬에 대해 검색 :

지역 자동 완성

또 다른 자동 완성 아키텍처는 플리커가 사용하는 것입니다. http://code.flickr.com/blog/2009/03/18/building-fast-client-side-searches/

+0

+1을 참조하십시오. 나는 마지막 링크를 읽는 것을 추천한다, 그것은 매우 좋다. –

관련 문제