我试图实现state_machine gem,在我的rails项目中,我安装了gem,然后我添加了列" state"到我的account_entries模型:
def change
add_column :account_entries, :state, :string
end
然后在我的account_entries模型中,我添加了状态机初始方法,如下所示:
state_machine :state, :initial => :submitted do
end
然后在我看来,我会显示时间输入状态:
account_entry.state
但是当我尝试从我的应用程序创建account_entry时,我收到此错误:
protected method `around_validation' called for #<StateMachine::Machine:0xba3014ec>
它表示它位于我的account_entries控制器的第4行,这是我的account_entries控制器的第4行。
e.account_entries.create(params.require(:account_entry).permit(:time, :account_id))
这是一个错误吗?或者这是我的问题?我该如何解决?错误消息的含义是什么?
答案 0 :(得分:15)
这是an open issue in state_machine。其中列出的一个修复程序通过将around_validation
方法设为public来解决此问题:
# config/initializers/state_machine_patch.rb
# See https://github.com/pluginaweek/state_machine/issues/251
module StateMachine
module Integrations
module ActiveModel
public :around_validation
end
end
end