0

ユーザーのステータス (ログインしているかどうか) に基づいて、アプリ内のロゴのリンク先を変更したいと考えています。

ユーザーがログインしている場合は、プロファイル ページ (users/show) にリンクしたいと思います。ログインしていない場合は、root_path に移動します。

ヘルパーを使用してこのセットアップを行いました:

意見:

<%= link_to logo, root_path %>

ヘルパー:

  def logo
    logo = image_tag("rlogo.png", alt: "Sample App")
  end

ありがとう

4

2 に答える 2

2

Matzi が提案した 3 項ソリューションは確かに機能しますが、別のオプションは、次のようなロゴとリンクを設定するようにヘルパーを変更することです (はログイン ユーザーcurrent_userのインスタンスを返すメソッドです)。User

def logo_link
  destination = current_user.present? ? current_user : root_path
  link_to image_tag("rlogo.png", alt: "Sample App"), destination
end

次に、ビューに含めるだけです

<%= logo_link %>

logoヘルパー内で既存のヘルパーを使用することもできますがlogo_link、それがそのコンテキストの外部で使用したい場合です。

于 2012-07-06T18:57:49.063 に答える
0

ビューで C のような条件式を使用します。

<%= link_to logo, (is_logged ? profile_path : root_path) %>
于 2012-07-06T18:49:07.837 に答える