0

私はそのようなクラス配列を持っています:

@types = Type.where("TYP_MOD_ID = ?", params[:mod_id])

数値であるフィールドTYP_KV_FUEL_DES_IDがあります....しかし、マップメソッドを介してこの値をメソッドを介して変更するにはどうすればよいですか? 私は次のようなことを試しました:

def get_types_for_mod2
    @types = Type.where("TYP_MOD_ID = ?", params[:mod_id])
    @types.map { |e| e.TYP_KV_FUEL_DES_ID = get_via_designation(e.TYP_KV_FUEL_DES_ID) }
    respond_to do |format|
      format.json { render :json => @types}
    end
  end
def get_via_designation(id)
    designation = Designation.find_by_DES_ID(id)
    destext = DesText.find_by_TEX_ID(designation.DES_TEX_ID)
    destext.TEX_TEXT
  end

では、どうすれば e.TYP_KV_FUEL_DES_ID の値を変更できますか?

upd1: 何もコミットする必要はありません! jsonの場合だけ、データを取得し、いくつかのフィールドを表示するように変更します! いいえデシベル!

4

1 に答える 1

0
@types = Type.where("TYP_MOD_ID = ?", params[:mod_id]).map do |type| 
  type.TYP_KV_FUEL_DES_ID = get_via_designation(type.TYP_KV_FUEL_DES_ID)
  type
end

ここでは、クエリからの結果をマップし、からの戻り値にType.where("TYP_MOD_ID = ?", params[:mod_id])設定しますTYP_KV_FUEL_DES_IDget_via_designation

更新: マップ ブロックが「タイプ」を返すことが追加されました

于 2013-01-28T18:33:21.407 に答える