2012-03-18 10 views
6

私はRailsアプリケーションを開始したばかりで、次の問題があります。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

は、私は2つのモデルを持っています

私の見解では、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を保存したいと思っています。 :id_elementオプションを使用して、idをフォームに格納するためのid入力フィールドを参照する可能性を認識しました。私は、formtasticの組み合わせに問題があるように見え、潜在的な可能性を見つけましたsolution

<%= f.input :customer_id, :as => :hidden %>と私はこれを行うことができましたが、私は本当にその行に何を書くのか分かりません:<%= f.input :customer, :as => :autocom...。 Is:顧客はこれに適したソリューションですか?このアプローチは、次の私に与える:

"cart"=>{"customer"=>"26","customer_id"=>"0"}は、誰もがアイデアを持っています、多分私は完全に全体の誤解:id_element事を...

答えて

2

はまた、あなたの移行に間違った列の名前を得ました。

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

[OK]を私はそれを見つけました:)

ので、あなたが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 %> 

So:id_elementは、結果が選択されたときに更新するid要素です。

関連する問題