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

前端之家收集整理的这篇文章主要介绍了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
原文链接:https://www.f2er.com/ruby/271297.html

猜你在找的Ruby相关文章