2017-04-17 102 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

看起來好像你在嘗試使用ActiveRecord來訪問不符合Rails命名約定的現有模式。除非你有*維護這個模式,否則你最好不要像Rails所期望的那樣重寫它。 – meagar

回答

0

UserInfo.first會給你的第一個記錄,在您的default_scope定義的order訂購。

如果您確實只想選擇列Column1,那麼您可以使用UserInfo.select(:Column1).first

+0

謝謝。我想獲得最新的記錄。我在做UserInfo.select(:column1).first在模型中? – User7354632781

+0

@ User7354632781這個問題沒有意義。你可以在需要的地方做到這一點。通常在控制器中,但它可能在任何地方。 – meagar

相關問題