2010-03-17 59 views

回答

2

ActiveRecord根据数据库中的列创建动态查找器。因此,举例来说,如果你有一个用户名属性的用户则ActiveRecord的创建一些动态拾得:

find_by_username 
find_or_initialize_by_username #=> calls new if not found 
find_or_create_by_username #=> calls create if not found 

可以串几个属性在一起像

find_by_username_and_email 

要回到你的问题 - 我怀疑你没有运行一些必要的迁移,将facebook_id添加到数据库中的用户表中,因此ActiveRecord没有将facebook_id的动态查找器添加到类中。

+0

我有这个facebook_id没有被添加到数据库相同的问题。我已经运行bundle exec rake db:migrate并拥有2个数据库。我也在使用SQLite。这可能是为什么?我要么得到上面提到的错误,要么'当你没有想到它时,你有一个零对象! 您可能预期了Array的一个实例。 评估nil时出错[]'... 当我改变了一下代码,我认为这意味着我的信息数组是空的。我认为这使我陷入这种推理。 – Tony 2011-12-14 09:26:46