1

コントローラーでこれを使用して、別のテーブルからのデータであるすべてのモデルを選択しました。

  def modelv
    @model = Model.find(:all, :conditions => { :MOD_MFA_ID => params[:man]}) 
    @ct1 = CountryDesignation.all(:conditions => { :CDS_ID => @model.map(&:MOD_CDS_ID)})
    @ct = @ct1.uniq{|hh| hh.CDS_ID}
    @destext = DesText.find(:all, :conditions => { :TEX_ID => @ct.map(&:CDS_TEX_ID)})
    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @model }
    end
  end

汚いコードでごめんなさい。

と私の見解

%table   %tr
    %th Mfa id
    %th Год начала выпуска
    %th Год завершения выпуска
  - @model.each do |model| 
    %tr
      %td= model.MOD_CDS_ID
      %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 %table   %tr
  - @destext.each do |t|
    %tr
      %td= t.TEX_ID
      %td= t.TEX_TEXT
  - @ct.each do |ct|
    %tr
      %td= ct.CDS_ID
      %td= ct.CDS_TEX_ID

しかし、すべてのモデルの t.TEX_TEXT と ct.CDS_TEX_ID を別のループではなく、同じテーブルの列に表示するにはどうすればよいでしょうか? さらに、私のメソッドはデータをフェッチしていますが、データを選択すると、ct.CDS_TEX_ID が複数のエントリで同じ場合、@destext がグループ化され、たとえば 1 つのインスタンスのみをフェッチします。

cds_id    cds_tex_id
110007626 420077
110007627 420077

その結果、@destext から 1 行だけ取​​得します。お願い助けて。それは非標準のデータベースです

テーブルMODELSにはフィールドMOD_CDS_IDがあり、このフィールドでテーブルCOUNTRY_DESIGNATIONSに移動し、フィールドCDS_ID = MOD_CDS_ID(MODELSテーブルから)です。このテーブルからフィールドCDS_TEX_IDを選択し、このIDでテーブルDES_TEXTSに移動します。フィールドTEX_IDは等しくなければなりません前のテーブル CDS_TEX_ID から、フィールド TEX_TEXT を取得します !!! そして、私のイテレーション @model.each のこのフィールドは....すべてのモデルに対して表示する必要があります

4

0 に答える 0