ruby-on-rails – 友好ID – 未定义方法`slug =’for

我正在使用宝石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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...