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

相关问题