2012-03-18 19 views
6

Rails uygulamasına yeni başladım ve şu sorunla karşılaşıyorum - jQuery UI'sini ve otomatik tamamlamayı kullanmak istiyorum ve bu nedenle gem rayları3-jquery-autocomplete'ı kullandım. Ayrıca ray formlarım için formtastic kullanıyorum.raylar3-jquery-autocomplete formtastic ile başvuru kimliği

Müşteri:

class Customer < ActiveRecord::Base 
    has_many :carts 
end 

create_table :customer do |t| 
    t.column :lastname, :string 
    t.column :forename, :string 
end 

Sepet:

class Cart < ActiveRecord::Base 
    belongs_to :customer 
end 

create_table :cart do |t| 
    t.column :costumer_id, :integer 
end 

olarak benim CartController otomatik tamamlama yapılandırma yapılan mücevher doc açıklanmıştır: autocomplete :customer, :lastname, :full => true

Ben iki model var

Formtastic koduyla ilgili görüşüme göre Bu: sahip olduğum temel soru, kimlik ile nasıl baş edileceğidir. Demek istediğim, müşterinin referans kimliğini ismimin kendisinde değil, sepet modelimde saklamak istiyorum. Kimlikte formda saklamak için bir kimlik giriş alanına başvurmak için :id_element seçeneğini kullanma olasılığını tanıdım. Anladım ki, formtastic kombinasyonu ile ilgili bir sorun var gibi görünüyor ve potansiyel bir solution bulundu.

Bunu bir <%= f.input :customer_id, :as => :hidden %> ile yapabilirdim, ancak satırda ne yazacağımı gerçekten bilmiyorum: <%= f.input :customer, :as => :autocom.... Mı: müşteri bunun için doğru çözüm? Bu yaklaşım şu bana verecekti:

"cart"=>{"customer"=>"26","customer_id"=>"0"} kimse bir fikir var mı, muhtemelen tamamen bütün yanlış anlamak: id_element şeyi ...

cevap

2

Ayrıca göç içine yanlış sütun adı var. ben

:) bulundu

create_table :cart do |t| 
    t.column :customer_id, :integer 
end 

Tamam böylece CUSTOMER_ID bir hidden_field yapmak ve bu giriş değerini güncellemek için otomatik olarak tamamlamayı anlatmalıyız. Etiket: update_elements => {}

<%= autocomplete_field_tag "cart_customer_name", "" , autocomplete_customer_lastname_carts_path, :id_element => "#customer_customer_id", :update_elements => {} %><br /> 
<%= f.hidden_field :customer_id %> 

Yani: id_element bir sonuç seçildiğinde güncelleştirmek istediğiniz kimliği unsurdur.

İlgili konular