Rails 4: 使用Paperclip和rails_admin时出现“undefined method `attachment_definitions' error”错误

7

我正在使用rails_admin和paperclip,但是在安装具有paperclip属性has_attached_file的模型时,安装rails_admin会抛出错误。

undefined method `attachment_definitions'

我正在使用 Rails 4 和 rails_admin 的主分支以及 protected attributes gem。

也遇到了这个问题。如果你找到了答案,请更新一下! - CharlieMezak
请参见 https://github.com/sferik/rails_admin/issues/1691。 - Bill Lipa
3个回答

8

我仍然使用Rails 3,但遇到了同样的问题。我相当确定这是最新版Paperclip和Rails Admin之间的问题。我将Paperclip版本降级至3.4.2,一切正常。

另一个需要注意的是,我正在使用Ruby 1.9.3。

所以对于新版Rails的用户:

在你的Gem文件中:

gem "paperclip", "3.4.2"

然后运行bundle update

不确定其他版本是否可用,但我知道这个版本可以。


1
我已确认此修复程序也适用于在Ruby 2.0.0-p195上运行的Rails 4.0.0。 - Marc L
该死!非常感谢Tyrel。我简直不敢相信这个在最新版本的Paperclip中不起作用。 - JGutierrezC

3
您是否正确地在模型本身中调用了has_attached_file函数?我使用的是ruby(1.9.3),Rails(4.0.1),paperclip(3.5.2)和rails_admin(0.5.0),没有出现错误。然后我创建了一个新的模型,它具有所有通常的paperclip列,应该可以工作。但是我收到了相同的错误消息。
我的问题是我忽略了在模型本身中配置paperclip,但是在我的schema中有paperclip列。我没有在模型中调用has_attached_file函数。
has_attached_file :img...

我大致记得rails_admin会嗅探特定的paperclip字段并对其进行操作。所以我有类似于paperclip的列,rails_admin检测到了,但从未调用has_attached_file导致错误发生。这个错误很合理,因为确实没有"attachment_definitions"可以说!


你挽救了一个项目。非常感谢。这真的帮了我很多。我发现数据库中有一些列,rails_admin正在寻找模型上的附件定义,但实际上并不存在。papercliprails_admin都没问题。问题出在数据库和模型层面。 - Arpit Vaishnav
我遇到了类似的问题。在我的情况下,是因为在 has_attached_file 方法之前,我调用了 attachment_definitions - ivanxuu

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接