3

不久之后,我的 rails 应用程序在测试套件中产生了以下运行时错误:

RuntimeError: Declare either attr_protected or attr_accessible for User, but not both.

这可能是由 restful_authentication 的更新引入的。但是扫描“attr_protected”的代码只会告诉我它从未被调用过。那么为什么会出现这个错误信息呢?

我的用户模型只有以下代码:

attr_accessible :login, :email, :name, :password, :password_confirmation, :identity_url

所以应该没问题吧?在哪里寻找问题的任何线索?搜索 google 显示一些无知的人,他们也只在测试环境中看到这个问题,在开发环境中偶尔看到这个问题。

4

3 回答 3

6

如果你使用带friendly_id的RestfulAuthentication,最新版本的friendly_id会带来这个错误,如github页面所示:

此外,此功能使用 attr_protected 来保护 cached_slug 列,除非您已经调用了 attr_accessible。所以如果你想使用 attr_accessible,你必须在你的类中调用 has_friendly_id 之前调用它。 github页面

此外,当使用 grep 查找关键字的出现时,不要忘记在 gems 中也使用 grep,因为您可能已经安装了一些插件作为 gem 存档。

于 2010-01-05T14:08:27.760 回答
0

您可能在声明include的类中有 d 个模块。也许某种测试功能可以做到这一点。Userattr_protected

于 2009-11-08T12:50:05.817 回答
0

这可能是由于插件添加了attr_protected. 可能会有所帮助。

于 2009-11-08T22:11:44.130 回答