неопределенный метод `параметризация 'для nil: NilClass - PullRequest
1 голос
/ 29 апреля 2010

Я пытался создать SEO-дружественные URL-адреса, и мне удалось заставить его работать, но когда я вызываю действие index в блогах, я получаю странный «неопределенный метод« parameterize »для 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

Ответы [ 2 ]

7 голосов
/ 29 апреля 2010

Оказывается, вы не можете вызвать title.parameterize to_param без ошибок. Поэтому я добавил столбец постоянных ссылок и вызвал параметризацию для этого.

#models/blog.rb
before_save :permalink

def to_param
 "#{id}-#{permalink}"
end

def permalink
 self.permalink = self.title.parameterize
end

И вуаля. Я знал, что это было что-то действительно глупое.

0 голосов
/ 18 января 2017

На случай, если у кого-то возникнут проблемы с этим в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...