将find_by_sql与RSPEC一起使用时缺少属性

时间:2012-06-01 09:29:40

标签: ruby-on-rails-3 rspec find-by-sql

我使用find_by_sql语句,它在开发中工作正常。 当使用规范来测试环境时,它会输出错误:

ActiveModel :: MissingAttributeError:缺少属性:已注册

我运行db:test:purge和db:test:准备清理测试数据库。 但错误仍然存​​在。 在开发和测试中,我使用PostgreSQL。

有问题的陈述如下:

def registered_friends
  User.find_by_sql(
  ["select users.id, users.first_name from users inner join friendships
    on users.id=friendships.friend_id
    where friendships.user_id = ?
    and users.registered = true",self.id])
end  

1 个答案:

答案 0 :(得分:0)

谢谢Sebastien,

我发现了问题。 在我的模型中,我初始化“已注册”字段,将其默认设置为“false”。 由于SQL查询没有返回“已注册”字段,因此此时它已破坏。 我发现它在开发阶段也破裂了。