2010-12-15 2 views
1

RoR newbiwであり、あなたの助けに感謝します。Ruby on Rails - 選択された関連データを検索するAjax

私は3つのモデルがある - その主キー、SUPPLIER_ID、submission_id - lnk_supplierテーブルは3つのフィールドを持って提出、サプライヤーおよびlnksupplier

class Submission < ActiveRecord::Base 
has_many :lnksuppliers, :dependent => :destroy 
has_many :suppliers, :through => :lnksupplier 
accepts_nested_attributes_for :lnksuppliers 
end 

class Lnksupplier < ActiveRecord::Base 
belongs_to :submission, 
belongs_to :supplier 
end 

class Supplier < ActiveRecord::Base 
has_many :lnksuppliers, :dependent => :destroy 
has_many :submissions, :through => :lnksupplier 
end 

を。 サプライヤをサブミットに関連付けるには、サプライヤテーブルから取得したすべてのサプライヤを含むドロップダウンリストからユーザが選択し、idはlnk_supplierテーブルに格納されます。以下のコードを参照してください:

<%= f.select(:supplier_id, options_for_select(Supplier.find(:all).collect {|p| [ p.SUP_COMPANY, p.ID ] })) %> 



    <%= observe_field("submission_lnksuppliers_attributes_0_LPL_SUP_FK", 
     :update => "span1", 
     :url => { :action => :find_supplier_details }, 
     :with => "'id='+value") %> 

答えて

2

チェックアウトobserve_field;選択した値をドロップダウンからAjax経由でRailsコントローラに渡すことができます。次に、コントローラで、選択したIDを使用してモデルを取得し、その結果をページに戻します。

編集:OK、あなたが投稿したobserve_fieldコードは良いスタートです。残りの部分は次のとおりです:1)コントローラ内でidをparamsから取得し、それを使用してそのサプライヤに関連するデータを取得し、2)ページにどのデータを追加するかを指定するrjsファイルをレンダリングします。そのデータをHTMLとしてレンダリングするために使用します。

+0

あなたの助けをたくさんありがとう:)私は上記のobserve_fieldコードを掲載しました – Kim

関連する問題