未定义的方法`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 

错误 http://www.freeimagehosting.net/image.php?83e76a260b.png

的截图原来你不能叫上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