我试图在 rails 中找到特定模型属性的值。这是我在用户控制器的“创建”方法中的代码:
@user = User.find(1, :select => :money)
existing_money = @user
puts "#{existing_money}"
在我的 Heroku 日志中,我将看到以下输出的变体,而不是该特定用户的 :money 整数(使用 :id 1)
#<User:0x00000004e7cbc0>
有什么想法吗?谢谢!
我试图在 rails 中找到特定模型属性的值。这是我在用户控制器的“创建”方法中的代码:
@user = User.find(1, :select => :money)
existing_money = @user
puts "#{existing_money}"
在我的 Heroku 日志中,我将看到以下输出的变体,而不是该特定用户的 :money 整数(使用 :id 1)
#<User:0x00000004e7cbc0>
有什么想法吗?谢谢!
@user = User.find(1, :select => :money)
您正在@user
使用只有一个值的对象设置实例变量,即money
值。目前,这一切只是为您节省了几个字节,省去了诸如id
,email
和该表中的任何其他列之类的内容。然而它仍然返回一个带有属性的对象,唯一的区别是你的对象只有一个属性可以调用。
existing_money = @user
鉴于它@user
仍然是一个具有单个属性的对象,您现在将该对象保存在existing_money
局部变量中。您可能想要做的是*仅将money
属性存储在此变量中。
所以你需要这个:
existing_money = @user.money
puts "#{existing_money}"
经过上述更改后,该puts
语句应该返回属性值,而不是封装属性的对象。
由于 existing_money 只是您看到的对象 ID 的对象。
当你想要钱属性时,你也必须引用它。
puts "#{existing_money.money}"