未定义的方法`parameterize'为零:NilClass
问题描述:
我一直在试图做SEO友好的网址,并设法让它工作,但是当我在博客上调用索引操作时,我得到了一个奇怪的“未定义方法`parameterize'for零:NilClass“。该方法在使用show方法时有效。未定义的方法`parameterize'为零:NilClass
#model
def to_s
title
end
def to_param
"#{id}-#{to_s.parameterize}"
end
#controller
@blogs = Blog.find.all
答
的截图原来你不能叫上to_param title.parameterize没有错误。所以我添加了一个permalink列,并在其上调用了parameterize。
#models/blog.rb
before_save :permalink
def to_param
"#{id}-#{permalink}"
end
def permalink
self.permalink = self.title.parameterize
end
并瞧。我知道这真的很愚蠢。
答
如果有人在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