Railsのrenderメソッドを呼び出す時にlocalsを使ってローカル変数を渡そうとした時、ActionView::Template::Errorで「dynamic constant assignment」とエラーが起きてしまった。
エラーが起きたlocalsの使い方は以下の通り。
render 'my_page', :locals => { Settings_title: Settings.title }
このようなエラーが起きた。
ActionView::Template::Error: /MyProjects/app/views/mypage.haml:1: dynamic constant assignment ...put_buffer;Settings_title = local_assigns[:Settings_site... ... ^
間違えてキーに大文字を指定していたことが原因だった。最初のコードの例はこのように書き換えたらOKだった。
render 'my_page', :locals => { settings_title: Settings.title }