无法初始化属于的state_machined类

时间:2012-05-10 19:08:03

标签: ruby-on-rails initializer state-machine

我在我的课程中包含了state_machine,并在控制台中使用它时退出了。但是,当我尝试在应用程序中使用它时,我的兴奋消失了。我得到了

wrong number of arguments (2 for 0)
当我调用user.requests.build时,在我的state_machined类“request”的“initialize”方法中出现

错误。

“initialize”方法看起来像

def initialize
  super()
end

因为宝石的创造者在https://github.com/pluginaweek/state_machine告诉了我。类定义以

开头
class Request < ActiveRecord::Base
 attr_accessible :subject, :details, :assigned_to, :log, :status, :solution

 belongs_to :user
 belongs_to :assignee, class_name: "User", foreign_key: "assigned_to"

我认为由初始化程序不知道的关联引起的错误。我对吗?我该怎么办?

1 个答案:

答案 0 :(得分:1)

README中给出的示例不适用于ActiveRecord集成 - 仅适用于纯Ruby类。在ActiveRecord集成中,无需在初始化方法中执行任何特殊操作以使state_machine工作。通过覆盖初始化方法,您将更改ActiveRecord所依赖的方法签名。如果你没有在覆盖中做任何其他事情,我建议你完全删除它。

希望这有帮助!