2012-03-18 1 views
6

방금 ​​레일스 앱을 시작했고 다음과 같은 문제가 있습니다. jQuery UI와 자동 완성을 사용하고 싶기 때문에 gem rails3-jquery-autocomplete를 사용했습니다. 나는 또한 레일 형식에 formtastic을 사용한다.rails3-jquery-autocomplete 레퍼런스 ID와 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에서 자동 완성 설정을 만든 보석의 문서에서 설명 : autocomplete :customer, :lastname, :full => true

나는 두 가지 모델이

formtastic 코드가있는 것처럼 보입니다. 이 :

<%= 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를 저장하고 이름 자체는 저장하지 않으려합니다. :id_element 옵션을 사용하여 양식에 ID를 저장하기위한 ID 입력 필드를 참조 할 수있는 가능성을 확인했습니다. 나는 formtastic 조합에 문제가있는 것 같았고 잠재적 인 것을 발견했습니다. 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 당신이 결과를 선택하면 업데이트 할 id 요소입니다.