2012-03-18 14 views
6

के साथ मैंने अभी अपना रेल ऐप शुरू किया है और मुझे निम्न समस्या है - मैं jQuery UI और स्वत: पूर्ण का उपयोग करना चाहता हूं, और इसलिए मणि रेल 3-jquery-autocomplete का उपयोग किया है। मैं अपने रेल रूपों के लिए फॉर्मेटास्टिक का भी उपयोग करता हूं।rails3-jquery-autocomplete संदर्भ आईडी formtastic

ग्राहक:

class Customer < ActiveRecord::Base 
    has_many :carts 
end 

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

कार्ट:

class Cart < ActiveRecord::Base 
    belongs_to :customer 
end 

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

के रूप में मणि मैं अपने CartController में स्वत: पूर्ण config बनाया दस्तावेज़ में विस्तार से बताया: autocomplete :customer, :lastname, :full => true

मैं दो मॉडल है

स्वरूपण कोड के साथ मेरे विचार में ऐसा लगता है यह:

<%= semantic_form_for @cart do |f| %> 
    <%= f.inputs do %> 
    <%= f.input :customer, 
     :as => :autocomplete, 
     :url => autocomplete_customer_lastname_carts_path, 
     :id_element => '#cart_customer_id' %> 

मेरे पास मुख्य प्रश्न है कि आईडी सामान से कैसे निपटें। मेरा मतलब है, मैं अपने कार्ट मॉडल में ग्राहक की संदर्भ आईडी को स्टोर करना चाहता हूं, न कि नाम स्वयं। मैंने फॉर्म में आईडी संग्रहीत करने के लिए आईडी इनपुट फ़ील्ड को संदर्भित करने के लिए :id_element विकल्प लेने की संभावना को पहचाना। मुझे पता चला कि फॉर्मेटैस्टिक संयोजन में कोई समस्या है, और एक संभावित solution मिला।

मैं इसे <%= f.input :customer_id, :as => :hidden %> के साथ कर सकता हूं, लेकिन मुझे वास्तव में यह नहीं पता कि लाइन में क्या लिखना है: <%= f.input :customer, :as => :autocom...। है: ग्राहक इसके लिए सही समाधान है? यह दृष्टिकोण मुझे देना होगा निम्नलिखित: "cart"=>{"customer"=>"26","customer_id"=>"0"}

किसी को भी एक विचार है, संभवतः मैं पूरी तरह पूरे गलत: id_element बात ...

उत्तर

2

आप भी अपने प्रवास में एक गलत स्तंभ नाम मिला है।

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

ठीक है, मैं चला यह :)

ताकि आप CUSTOMER_ID के साथ एक hidden_field बनाने के लिए और इस इनपुट मूल्य अद्यतन करने के लिए स्वत: पूर्ण कर बताने की जरूरत है। टैग: 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 %> 

तो: id_element वह आईडी तत्व है जिसे आप अपडेट करना चाहते हैं जब आप अपडेट करना चाहते हैं।

संबंधित मुद्दे