Как избежать page_title в представлении, когда оно определено в помощнике приложения?Ошибка (ноль) испускается из вида - PullRequest
1 голос
/ 25 января 2012

Работа в приложении, где метод page_title был определен в application_helper.rb следующим образом:

  def page_title(title = nil)
    if title.present?
      content_for(:page_title) { "#{title} - SomeDomain.tld" }
    else
      content_for?(:page_title) ? content_for(:page_title) : "SomeDomain.tld"
    end
  end

В представлении мне нужно передать этот page_title в несколько различных ссылок, например:

= link_to "http://www.some_bookmark_site.com/submit?url=#{URI::escape(request.url)}&title=#{URI::escape(page_title)}", :target =>"_blank"  do

Однако, когда я делаю это, я получаю нулевую ошибку "undefined method 'each_byte' for nil:NilClass", которая, очевидно, указывает на то, что метод возвращает ноль ...

или мне вместо этого нужно передать переменную здесь?Был бы признателен за разъяснение о том, как правильно сформировать все это для таких условий.

Полный след: http://pastebin.com/gegDETUp

Просто хотел бы отметить, что я все еще ищу ответ на этот вопрос.

1 Ответ

0 голосов
/ 01 февраля 2012

когда я правильно понимаю ваш вопрос, вы спрашиваете, почему ваш page_title метод возвращает nil?

Если это так, вы должны посмотреть, как использовать content_for и yield в шаблонах:

# in the helper
content_for(:page_title, 'title') # => nil

# in the view
yield :page_title # => here goes the 'title'

http://guides.rubyonrails.org/layouts_and_rendering.html#understanding-yield

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...