2017-04-17 12 views
-2

は、私は次のモデル最初のレコードから列を選択するにはどうすればよいですか?

module UserInfo 
    class User < ActiveRecord::Base 

    self.table_name = 'vUserDetails' 

    default_scope { order(date_entered: :desc) } 

    end 
end 

どのように私は、このモデルを使用して次のクエリを生成することができますを作成しましたか?

SELECT TOP 1 Column1 
FROM vUserDetails 
WHERE vUserDetails.UserID = @user_id 
ORDER BY DateEntered DESC 
+0

Railsの命名規則に準拠していない既存のスキーマにActiveRecordを使用してアクセスしようとしているようです。このスキーマを維持する必要がある場合を除いて、Railsが期待するように、このスキーマを書き直す方がはるかに良いでしょう。 – meagar

答えて

0

UserInfo.firstあなたdefault_scopeに定義されてorderが注文した最初のレコードを、提供します。

実際に列Column1のみを選択する場合は、UserInfo.select(:Column1).firstを使用します。

+0

ありがとうございます。最新のレコードを取得しようとしています。モデルでUserInfo.select(:column1).firstをやっていますか? – User7354632781

+0

@ User7354632781その質問は理にかなっていません。あなたはそれが必要な場所でそれを行います。コントローラでは、通常はどこにでも置くことができます。 – meagar

関連する問題