2011年11月 7日
Rails オプション(省略可)local variablesをpartial viewに渡す方法
例えば省略可能なフラグみたいなローカル変数をpartial viewに渡した時、そのデフォルト動作をpartial viewでハンドリングしたいですね。
調べてみたらdefined?とlocal_assigns.has_key?が見つかりましたが、前者のほうはオススメできなさそうです。
Testing using defined? headline will not work. This is an implementation restriction.
http://api.rubyonrails.org/classes/ActionView/Base.html
実際やってみて、defined?でも動けるパターンはありますが、if/unless文で一行にしたらバグりました。なのでやはり* local_assigns.has_key?*を使いましょう。
Resources
http://stackoverflow.com/questions/238615/defined-method-in-ruby-and-rails
http://api.rubyonrails.org/classes/ActionView/Base.html