2012-06-27 56 views
0

我试图在rails中找到特定模型属性的值。下面是我在用户控制器的“create”方法的代码如下所示:从Rails中的模型中查找特定属性的值

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

在我的Heroku的日志,我会看到下面的输出,而不是的变体:钱整数针对特定用户(含:身份证1)

#<User:0x00000004e7cbc0> 

有什么想法?谢谢!

回答

1

由于existing_money只是您看到对象ID的对象。
正如你想要的金钱属性,你也必须参考。

puts "#{existing_money.money}" 
+0

谢谢Michael! – dougiebuckets

2
@user = User.find(1, :select => :money) 

要设置与只有一个值,即money值的对象@user实例变量。现在,所有这些都会为您节省几个字节,通过忽略诸如id,email以及您在该表中的任何其他列。但它仍然会返回一个带有属性的对象,唯一的区别是对象只有一个要调用的属性。

existing_money = @user 

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

所以,你需要这样的:

existing_money = @user.money 

puts "#{existing_money}" 

上述变更后,本puts语句应返回的属性值,而不是对象封装属性。