2016-04-08 24 views
2

Amerika Birleşik Devletleri'nden sonra bir şehir ayarlamak için ikinci bir alan eklemenin bazı yollarını biraz araştırdım. Önce iki seçenek gördüm: her ikisi de bir seçim kutusuyla observe_field (prototip) ve jQuery. Gerçek şu ki, JavaScript'i bilmiyorum ve bunu yapmak için acelem var ... Eh, otomatik tamamlama ile bir metin alanının daha iyi olacağını ve belki de en kolay olacağını düşündüm.Şehirler Rayları Otomatik Olarak Tamamla Metin Alanı

İşte başlıyoruz: Uf ve Şehir modelim var ve her ikisi de verilerle dolduruluyor. Şehirde "belongs_to Uf" var. Soru şu: Nasıl böyle bir şey ayarlayabilirim? Bunu sadece yakut ve raylarla yapmak için bir yol var mı?

+0

Bu, kullanıcının şehri seçmek için başka bir sayfaya gitmesi gerekmedikçe istemci tarafı olmalıdır. Dokümanları okursanız ve teknik olarak "raylar" * çerçevesinin bir parçasıysa jQuery'yi öğrenmek çok zor değildir. – engineersmnky

cevap

2

Bunu yapmak için, kullanıcı her bir metin girdiğinde gönderilen bazı arama dizesi sorgusuna yanıt veren bir AJAX eylemine sahip olmak istersiniz. Bu işlem, aramanın sonuç kümesini içeren verilerle görüşe yanıt verir.

İl Kontrolörü:

def search 
    term = params[:term] 
    cities = City.where('name LIKE ? OR code LIKE ?', "%#{term}%", "%#{term}%").order(:name) 
    render json: cities.map { |city| 
     { 
     id: city.id, 
     label: city.inspect, 
     value: city.full_name 
     } 
    } 
end 

bir yanıt aldıktan sonra, açılan arama sonuçları ile doldurulur olacağını

İşte çok basit bir örnek. Bir değer seçmek, alanı gönderir ve formun gönderildiği tarihte şehir için eşleşen id'u gizli bir alanda depolar.

jQuery otomatik tamamlama Gem'i araştırmayı düşünürüm. Rails kullanıyorsanız, https://github.com/bigtunacan/rails-jquery-autocomplete numaralı telefondan öğrenmek için iyi olması gereken tam yığın bir sürüm var.

İlgili konular