我一直在努力做SEO友好的网址,并设法让它工作,但当我在博客上调用索引操作时,我得到一个奇怪的“未定义的方法`参数化'为nil:NilClass。”使用show方法时该方法有效。
#model
def to_s
title
end
def to_param
"#{id}-#{to_s.parameterize}"
end
#controller
@blogs = Blog.find.all
错误的屏幕截图 http://www.freeimagehosting.net/image.php?83e76a260b.png
答案 0 :(得分:7)
原来你不能在没有错误的情况下调用to_param上的title.parameterize。所以我添加了一个永久链接列,并在其上调用参数化。
#models/blog.rb
before_save :permalink
def to_param
"#{id}-#{permalink}"
end
def permalink
self.permalink = self.title.parameterize
end
瞧。我知道这真的很蠢。
答案 1 :(得分:0)
如果有人在Rails 5中遇到麻烦......我遗漏了#to_s部分,这很关键。
class Post < ApplicationRecord
def to_param
slug
end
def slug
"#{id}-#{pretty_url}"
end
def pretty_url
title.to_s.parameterize
end
end