この小さなコード スニペット (css クラスを使用したナビゲーション ヘルパーの場合)が-lineundefined method 'include?' for nil:NilClass
を表示するのはなぜですか?elseif
これpage_classes_string
は、「oddchapoddchap_zoidbergoddchap_zoidberg_index」のようなものかもしれません。このメソッドの目的は明らかだと思います。
page_classes_string
「_index」が含まれている場合は、最後の単語を削除しますpage_classes_string
を現在のものと比較し、page_string
ナビゲーションに適したクラス名を持つ文字列を返します。
このコードをirbで試してみましたが、もちろん動作しますが、仲介者の設定では動作しません。また、「page_classes_string」が割り当てられる 3 番目の変数を使用してそれを書き直すこともできますが、それはちょっと面倒に思えます。助言がありますか?
もちろん、_string
次の変数名に付けられた は、明確化のみを目的としています。
def nav_active(page_string)
if page_classes_string.match(/_index/)
page_classes_string = page_classes_string.split(/ /)[0..-2].join(' ')
end
if page_classes_string == page_string
'active'
elsif page_classes_string.include? page_string
'semiactive'
else
nil
end
end