2011年11月 7日 #ruby #rails #actionview #partial

例えば省略可能なフラグみたいなローカル変数を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