Не можете получить доступ к вспомогательному методу?

Здесь странная проблема.

В моем помощнике приложения есть метод с именем test и другой метод с именем article_url. У меня есть ресурс article, и я создаю его url_helpers. В тестовом методе я вызываю article_url, но он обращается к методу url_helper вместо метода, который я определил в helper.

Мой проект хорошо работает в Rails 3.0, но когда я обновляюсь до 3.2, это поднимает проблему. И под 3.2, режим разработки работает хорошо, но проблема повышения производства.

Пожалуйста, прости мой плохой английский:-)

Извините, код такой:

# application_helper.rb
module ApplicationHelper

  ...

  def article_url(article, html_suffix = true)
    if article.redirect_to.present?
      article.redirect_to
    else
      url = "#{Settings.host}/articles/#{article.created_at.strftime("%Y-%m-%d")}/#{article.id}"
      url += ".html" if html_suffix
      url
    end
  end

  ...

  def render_article_list(article)
    link_to(xxx, article_url(article), {:target => "_blank"})
  end

end

1 ответ

Переименуйте ваш вспомогательный метод. Если у вас есть помощник по имени article_url и ресурс с именем article затем article_url будет неоднозначно между маршрутами и помощником. Если вы не думаете, что это проблема, опубликуйте код, который поможет нам сузить проблему.

Другие вопросы по тегам