ウェブサービスを作っています。

redirect_to and return if

今まで

redirect_to :action => :index if data.blank?
return

みたいに書いてたとこが、

redirect_to :action => :index and return if data.blank?

みたいに書けるってはじめて知りました。
英語っぽいー。


data.blank? が評価されて、redirect_to が実行されて、redirect_to の結果が真なので and 以下が評価されて、return が実行されるんですね。

p redirect_to :action => :index  # => { :action => :index }
p redirect_to games_index_url    # => true

必ずしも、第 1 引数が返されるわけじゃないんですね。
ソース読んでないからよくわかってないですが、とりあえず and return って書けるってマニュアルにも書いてありました。