2012-04-22 8 views
0

配列を検索したいのですが、どうすればいいですか?以前のfind配列を使ってrailsメソッドを選択するには?

@model = Model.find(:first, :conditions => { :MOD_MFA_ID => params[:man]}) 
@ct = CountryDesignation.find(:first, :conditions => { :CDS_ID => "110000002"}) 

ただし、:CDS_ID => "110000002"は正しくありません。 @ model.Fieldで選択する必要があります。例:CDS_ID => @ model.Field。しかし、@modelは単なる1つのエントリではなく、配列です。だから私は、すべてのModel Select CountryDesignationが必要です。 しかし、私はCountryDesignation配列DesText配列

@destext = DesText.findから選択する必要があります(:すべて:条件=> {:TEX_ID => ct.Field @})

方法この仕事をするには? これを修正する方法は?あなたが探しているもの

%table 
    %tr 
    %th Mfa id 
    %th Год начала выпуска 
    %th Год завершения выпуска 
    - @model.each do |model| 
    %tr 
     %td= link_to model.MOD_ID, model 
     %td= link_to model.MOD_PCON_START, model 
     -if model.MOD_PCON_END.blank? 
     %td= link_to "По настоящее время", model 
     -else 
     %td= link_to model.MOD_PCON_END, model 
     -#%td= model.country_designations.des_texts.TEX_TEXT 
     -#= link_to 'Show model', model 
    %br 
    - @destext.each do |t| 
    name 
    %td= t.TEX_ID 
    %td= t.TEX_TEXT 
    - @ct.each do |ct| 
    ct 
    %td= ct.CDS_ID 
    %td= ct.CDS_TEX_ID 

答えて

0

はActiveRecordのは、SQLのIN句と同じ方法で配列を扱うための方法です。幸いにも、ARは、配列を渡したときにデフォルトでそれを行います。つまり、次のように記述することができるはずです。

@model = Model.find(:最初、:条件=> {:MOD_MFA_ID =>})

+0

フォーマットが正しくありません。終わりの前に配列であるはずだった} –

+0

形式をお願いします。 – byCoder

+0

Pavel、私のソリューションは基本的にBrandanから得たものと同じです。言い換えれば、あなたの問題に合うように、答えはまだです: 'CountryDesignation.all(:conditions => {:CDS_ID => @ models.map(&:MOD_CSD_ID)})' –

2

あなたはmapを使用することができます。モデルはあなたがcds_id命名したことに興味属性場合:

@models = Model.all(:conditions => { :MOD_MFA_ID => params[:man] }) 
@ct = CountryDesignation.all(:conditions => { :CDS_ID => @models.map(&:cds_id) }) 

これは、本質的に配列に各モデルのcds_id属性をつかみ、SQL IN句でこれらの値を使用しています。一致するオブジェクトCountryDesignationの配列を返します。

+0

hm、いいえ、フィールドMOD_CDS_IDが必要です:CDS_ID => @ models.MOD_CDS_ID like this – byCoder

+0

さて、私の例では、 'cds_id'を' MOD_CDS_ID'に置き換えてください。あなたのモデルがどのようなものかわからないので、私は例を挙げています。このような – Brandan

+0

すべての問題 – byCoder

関連する問題