2011-08-16 17 views
0

私はデータベースから唯一の行をロードしています。データは、変数(例えば)@dataに格納される。ビューで 、私は値がデータベースから得た表示したい場合は、私は次の操作を実行する必要があります。Rails 3 - データベースからデータを取得する方法

<% @data.each do |d| %> 
     <%=d.name %> 
    <%end%> 

そして私はお聞きしたいと思います - 任意のより良い方法を存在しますか?私は私の質問にとても

...私は

<%= @data.name %> 
OR 
<%= @data.each.name %> 

のようなものを試してみました。しかし、両方のケースでは、私は悪い構文に関するエラーメッセージが表示されました...それはループを使用する唯一の行のために少し愚かだと思います - 表示データを少しエレガントにすることは可能ですか?

EDIT:私のクエリ:@data = Car.includes(:タイヤ).where( "のparam1 =?"、のparams [:パラメータ1])あなたがより多くのものよりもロードされている場合

答えて

1

モデル(行)の場合、ループは各値を表示するための自然な構成です。あなたが本当にワンライナーに設定されている場合は、Rubyのリストの内包表記の一部を使用することができます:

<%= @data.map(&:name).join(" ") -%> 
+0

いや、私は、具体的には、2つのモデルからデータをロードしています: '@data = Car.includes(:タイヤ).where(「PARAM1 =? "、params [:param1])' – user1946705

1

私はあなたの代わりに.first.allをロードしていると思います。コントローラーで

@data = Data.where(:some => 'condition').first 

又は

@data = Data.find(params[:id]) 
関連する問題