gpt4 book ai didi

ruby-on-rails - 任何代码编辑后的 ​​RoR 未定义方法 `attr_accessible'

转载 作者:行者123 更新时间:2023-12-04 03:38:22 26 4
gpt4 key购买 nike

我正在实现一个很棒的插件,我发现它可以根据用户行为向用户奖励积分/徽章/排名。它被称为优点,可以在这里找到:https://github.com/tute/merit

我有两个模型:“发布”和“标签”。关联是:帖子有很多标签,标签属于一个帖子。

当用户创建“帖子”时,我会向他们奖励积分。每当调用帖子 Controller 的“创建”操作时,我都会将插件配置为奖励积分。

问题:

当我启动服务器时,我会通过我的流程来创建带有任何关联标签的新帖子。这完美地工作。在我以任何方式编辑我的代码(在 Controller 或模型中)之前,它将完美运行。编辑后,在尝试创建新帖子时,我会收到此错误:

undefined method `attr_accessible' for Merit::Action:Class

只要我更改文件的基本内容(这包括简单地添加调试“puts”语句),我进行什么样的编辑似乎并不重要。此时,我根本无法再创建帖子,因为每次尝试创建帖子都会导致相同的错误。然后,一旦我重新启动 WEBrick,它将再次工作(直到我再次编辑代码)。

这里发生了什么? 为什么编辑我的代码的简单行为会导致 attr_accessible 在 Merit 插件中突然变得未定义,直到我重新启动服务器?

最佳答案

这似乎是一个 ruby​​ 类重新加载问题。

我认为您的插件不会与您更改的文件一起重新加载,因此 gem 的行为不会重新注入(inject)到新代码中。当您重新启动 Rails 服务器时,应用程序的代码和 gem 的代码是同步的,并且 gem 的行为可以注入(inject)到应用程序的代码中。

是否有意义?

关于ruby-on-rails - 任何代码编辑后的 ​​RoR 未定义方法 `attr_accessible',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14153421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com