如何修复未定义的方法“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 => [: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”的默认运算符类