我正在使用宝石Workflow,Paper Trail和Friend ID.
要使用Paper Trail跟踪状态更改,我已重写persist_workflow_state以显式更新工作流列,以便Paper Trail可以捕获更改.
https://github.com/geekq/workflow#integration-with-activerecord
def persist_workflow_state(new_value) update_attribute self.class.workflow_column,new_value end
现在,我已经介绍了没有slug列的Friendly ID,并且在达到上述方法后我得到了错误.
undefined method `slug=' for #<ModelName:0x007f81cf342cd8>
有帮助吗?
解决方法
Now,I have introduced Friendly ID without slug column
我不知道你在这里究竟是什么意思,但简单来说,就像试着没有钥匙就开车
FriendlyID
FriendlyID的工作方式是使用slug(或其他标识符)列来创建slugged URL,并根据slugged ID查找:
extend FriendlyId friendly_id :name,use: [:slugged,:finders]
这允许gem基于id或slug属性进行查找
如果你错过了slug列,这将阻止它工作,导致你的错误.解决这个问题的方法是:
>使用slug柱
>使用attr_accessor创建一个slug属性
如果您想尝试第二个选项,可以试试这个:
#app/models/ModelName.rb attr_accessor :slug