概要
replace instance variable with local variableへの対応
詳細
particalなビューを利用する場合に、インスタンス変数の利用箇所を
ローカル変数に置き換えることで再利用性を高めるように、という警告。
render :locals => {key: value, key: value ・・・・}
を利用して変数を受け渡します。
修正前
_menu.html.haml(メニュー用部分テンプレート)
※抜粋。only_to_signinがインスタンス変数です。
- if @only_to_signin = link_to '/signin/index' do %i{:class => 'icon-signin'} = t('link.to_signin') %hr/
application.html.haml
!!! %html %head %meta{:"http-equiv" => "Content-Type", :content => "text/html;charset=UTF-8"}/ %title Title = stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true = javascript_include_tag "application", "data-turbolinks-track" => true = csrf_meta_tags %body = render :partial => "application/menu" = render :partial => "application/screen_title" = render :partial => "application/simple_message" = yield
修正後
_menu.html.haml(メニュー用部分テンプレート)
※抜粋。only_to_signinがローカル変数になりました。
- if only_to_signin = link_to '/signin/index' do %i{:class => 'icon-signin'} = t('link.to_signin') %hr/
application.html.haml
!!! %html %head %meta{:"http-equiv" => "Content-Type", :content => "text/html;charset=UTF-8"}/ %title Title = stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true = javascript_include_tag "application", "data-turbolinks-track" => true = csrf_meta_tags %body = render :partial => "application/menu", :locals => {only_to_signin: @only_to_signin} = render :partial => "application/screen_title" = render :partial => "application/simple_message" = yield