#状況
ページタイトルをhelperを使って動的に表示するために、以下のコードを書いた。
application_helper.rb
def full_title(page_title)
BASE_TITLE = "HOGE".freeze
if page_title.blank?
BASE_TITLE
else
page_title + " - " + BASE_TITLE
end
end
ここで、BASE_TITLEは定数であるため、UPPER_SNAKE_CASEで定義している。
またrubyにおける定数は再定義ができるソフトな(破壊的変更が可能な)代物なので、再定義ができないようにfreezeメソッドを使って凍結しておいた。
実行した結果、
syntax errorとして以下のエラーが表示された
dynamic constant assignment
BASE_TITLE = "title"
^~~~~~~~~~
#対処法
メソッドの外で定数を定義する。
application_helper.rb
BASE_TITLE = "HOGE".freeze
def full_title(page_title)
if page_title.blank?
BASE_TITLE
else
page_title + " - " + BASE_TITLE
end
end
どうやらrubyでは、メソッドの中で定数を定義できない仕様になっているらしい。