【问题标题】:Finding a particular attribute's value from a model in Rails在 Rails 中从模型中查找特定属性的值
【发布时间】:2012-06-28 19:52:42
【问题描述】:

我正在尝试在 rails 中查找特定模型属性的值。这是我在用户控制器的“创建”方法中的代码:

@user = User.find(1, :select => :money)
existing_money = @user
puts "#{existing_money}"

在我的 Heroku 日志中,我将看到以下输出的变体,而不是该特定用户的 :money 整数(使用 :id 1)

#<User:0x00000004e7cbc0>

有什么想法吗?谢谢!

【问题讨论】:

    标签: ruby-on-rails find modelattribute


    【解决方案1】:
    @user = User.find(1, :select => :money)
    

    您正在使用只有一个值的对象设置@user 实例变量,即money 值。目前,这一切只是为您节省了几个字节,省去了idemail 以及该表中的任何其他列。然而它仍然返回一个带有属性的对象,唯一的区别是你的对象只有一个属性可以调用。

    existing_money = @user
    

    鉴于@user 仍然是一个具有单个属性的对象,您现在将该对象保存在existing_money 局部变量中。您可能想要做的是*仅将 money 属性存储在此变量中。

    所以你需要这个:

    existing_money = @user.money
    
    puts "#{existing_money}"
    

    经过上述更改,这个puts语句应该返回属性值,而不是封装属性的对象。

    【讨论】:

      【解决方案2】:

      existing_money 只是您看到的对象 ID。
      当你想要金钱属性时,你也必须引用它。

      puts "#{existing_money.money}"
      

      【讨论】:

        猜你喜欢
        • 2016-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多