2012-01-29 10 views
0

私が/log_inページにいる場合、どのようにしてsign_upリンクを表示するのですか?現在のページのリンクを表示せず、別のリンクに変更してください

<% if /sign_up do %> 
    <%= link_to "Sign up", sign_up_path %> 
<% else %> 
    <%= link_to "Login", log_in_path %> 
<% end %> 

にマッピングされたルートとしましょう:私は工夫を使用しておりますので

get "/sign_up" => "devise/registrations#new" 
get "/log_in" => "devise/sessions#new" 

を。これはDeviseルートとはどのようなものでしょうか?

ありがとうございます。 as:

答えて

1

名前は、あなたのルートあなたがsign_up_pathlog_in_path使用できるように:私はあなたが

  • ログインビューapp/views/devise/sessions/new.html.erb
  • 申し込みビューを持っているので、rails g devise:viewsを実行したと仮定し

    get "sign_up" => "devise/registrations#new", as: "sign_up" 
    get "log_in" => "devise/sessions#new", as: "log_in" 
    

    app/views/devise/registrations/new.html.erb

if文を使用する代わりにリンクを手作業でコード化するだけではどうですか?

# signup view 
<%= link_to "Log In", log_in_path %> 

# login view 
<%= link_to "Sign Up", sign_up_path %> 

しかし、あなたが本当にif文を使いたいならば、あなたは確認することcurrent_page?(named_path)を使用することができます。例:

<% current_page?(log_in_path) ? link_to("Sign Up", sign_up_path) : link_to("Log In", log_in_path) %> 
関連する問題