おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

Railsで同じviewを使い回す時に知って得するメソッド4つ

リファレンスを見てたら偶然見つけたメソッドが使えそうだったのでまとめておきます。同じviewテンプレートを複数のアクションで使い回す時に使えます。

current_page?

指定したURLが、現在表示されていればtrueを返します。

# main#indexならtrue
current_page?(:controller => "main", :action => "index") #

link_to_if

link_toの第一引数に条件文を書き、trueならリンクを有効に、falseならリンクを無効に(文字は表示されます)します。

# @mailがあればリンクが有効に
link_to_if(@mail, "メッセージ送信ページへ", :controller => "message", :action => "new")

link_to_unless

link_to_ifのunless版。

link_to_unless_current

4つの中でこれが一番使えるメソッドじゃないかなーと思います。link_to_unlessとcurrent_page?を組み合わせたメソッド。リンクとして指定したページを表示している時はリンクを無効にします。

# Users#indexならリンクが無効
link_to_unless_current("ユーザ一覧", :controller => "users", :action => "index")