如何修复未定义的方法“find_by_friendly_id”

Posted

技术标签:

【中文标题】如何修复未定义的方法“find_by_friendly_id”【英文标题】:how to fix undefined method `find_by_friendly_id' 【发布时间】:2018-01-12 12:17:00 【问题描述】:

我正在尝试这个

Opportunity.find_by_friendly_id(params[:id])

在配置了friendly_id 的rails 应用程序中。我明白了

undefined method `find_by_friendly_id' for #<Class:0x007f8060395ca0> Did you mean? find_by_sql

有趣的是,这是可行的:

Opportunity.friendly.find(params[:id])

怎么了?

这是来自https://github.com/norman/friendly_id/blob/master/lib/friendly_id/finder_methods.rb的文档

# If you want to search only by the friendly id, use #find_by_friendly_id.
# @raise ActiveRecord::RecordNotFound

更新:有人想看这个:

$ cat components/core/app/models/opportunity.rb | grep friendly
  friendly_id :slug_candidates, use: :slugged
$

【问题讨论】:

根据github.com/norman/friendly_id/issues/701#issuecomment-142669074。我可以用那个方法 rubydoc.info/github/norman/friendly_id/… 为什么对这个问题有-1票,这是怎么回事... 我的错。将删除我的评论。如果您对任何问题投反对票,请添加评论。 你能在你添加friendly_id的地方展示你的模型吗?您添加了查找器吗? friendly_id :name, :use =&gt; [:slugged, :finders] 【参考方案1】:

我最终将finders 添加到模型中

friendly_id :foo, :use => [:slugged, :finders]

【讨论】:

以上是关于如何修复未定义的方法“find_by_friendly_id”的主要内容,如果未能解决你的问题,请参考以下文章

如何修复未定义的方法“find_by_friendly_id”

未定义的嵌套属性!如何修复它?

如何修复返回“未定义”的异步函数?

在 react s-s-r 应用程序中调用 firebase 消息传递方法时,如何修复 self 未定义?

如何修复 SQLSTATE [42704]:未定义对象:7 错误:数据类型 json 在heroku 托管中没有访问方法“btree”的默认运算符类

如何修复可能的未处理承诺拒绝(id:0)?以及如何修复无法读取未定义的属性“导航”?