nil的未定义方法`parameterize':NilClass

sen*_*hil 1 ruby-on-rails

我一直在努力做SEO友好的网址,并设法让它工作,但当我在博客上调用索引动作时,我得到一个奇怪的"未定义的方法`参数化'为nil:NilClass." 使用show方法时该方法有效.

  #model
  def to_s
    title
  end

  def to_param
    "#{id}-#{to_s.parameterize}"
  end

  #controller
  @blogs = Blog.find.all
Run Code Online (Sandbox Code Playgroud)

错误的屏幕截图 http://www.freeimagehosting.net/image.php?83e76a260b.png

sen*_*hil 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
Run Code Online (Sandbox Code Playgroud)

瞧.我知道这真的很蠢.