2

このempty?メソッドは nil クラスでは定義されていないためnil.empty?、コンソールで試すと次のようになります。undefined method empty? for nil:NilClass

application_helper.rb でこのメソッドを作成しました。

def full_title(page_title)
   base_title = "my app"
   if page_title.empty?
     base_title
   else
     "#{base_title} - #{page_title}".html_safe
    end
end

私のアプリケーション レイアウトでは、次のようにタイトル タグで呼び出します。

!!!
%html
  %head
    %title #{full_title(yield(:title))}
    ...
    ...
  %body
    = yield

そして、各ビューで、provide(:title, "something")このヘルパー メソッドに文字列を渡すために追加します。

しかし、使用しない場合は、page_title.empty?provide(:title, "something")のようになります。true を返します!

私の質問は、なぜ page_title.empty なのですか? true を返します。を使用しない場合、page_title 変数は nil だと思いますがprovide(:title, "something")、エラーは発生しませんか? 未定義などundefined method empty? for nil:NilClass

4

2 に答える 2

0

それが機能する場合、それは変数page_titleが ではないことを意味しますnil

デバッグモードでテストして、結果を報告してください:)

ヒント: pry を使用すると、binding.pryの直後に置くことができますbase_title = "my app"

于 2013-07-24T19:13:23.153 に答える