2012-01-27 8 views
0

ここでやっていることをよりスマートな方法で行う必要があります。オブジェクトの配列からコントローラ名を取得する

私は、レールプロジェクトの私のモデルのショーページに入っています。そのモデルはVehicleです。

各車両にはマイレージの記録がありますので、各車両のショーページに表示しようとしています。

私は部分的に 'records_table'をレンダリングしています(私はそれをページのさらに下のサービスレコード用に再利用できます)。 (明白な理由のために)いないマイレージを記録する車両用table_headersを、レンダリング

<%= render "table_headers" %> 

を:問題は、部分的に、私は次のコードを使用して、テーブルのヘッダーをレンダリングしていますということです。私は物事を行うには、このような醜い方法だビューフォルダ(走行距離レコードに関連付けられているコントローラの名前)

<%= render "#{objs.first.class.name.pluralize.underscore}/table_headers" %> 

の名前を取得するには、これを行うことで問題を回避することができます。オブジェクトの配列からコントローラの名前を取得する別の方法がありますか(同じモデルのすべてであると仮定します)。または、必要なtable_headersを指定するより良い方法があります(これは、他のタイプのレコードに対応する必要があるため、mileage_recordsを静的に入力するだけではありません)。

答えて

0

どのようにここで説明するように、部分的に変数を渡すことについて:セクション3.4.4で

http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials

を?

controller.controller_nameを_recordsパーシャルに渡すことができます。これは、ハッシュまたはルックアップテーブルを別の場所で参照して、どのレコードを表示するかを決定することができます。

関連する問題