我正在创建一个rails应用程序并创建了一个工作正常的简单导航栏。我已经设置了设计并创建了一个配置文件模型,我希望用户在注册后创建它,并且(我相信)我已经正确地建立了必要的关联。
当新用户第一次登录时,我想要一个"创建个人资料"链接使用new_profile_path在导航栏中显示,但是一旦该特定用户创建了他/她的个人资料,我希望"创建个人资料"改为"查看个人资料"永久保持这种方式,应该重定向到profile_path。
我目前在导航栏中的代码如下:
<ul>
<li><%= link_to root_path do %>
<i class="fa fa-home"></i>Main
<% end %>
</li>
<% if current_user.profile %>
<li><%= link_to profile_path(current_user.profile) do %>
<i class="fa fa-user"></i>Employee Profile<i class="fa fa-sort-desc"></i>
<% end %>
<% end %>
<% else %>
<li><%= link_to "New Profile", new_profile_path %></li>
<ul>
<li><%= link_to "Tasks / Activities", tasks_path %></li>
<li><%= link_to "Vacations", vacations_path %></li>
</ul>
</li>
<li><%= link_to projects_path do %>
<i class="fa fa-building-o"></i>Projects<i class="fa fa-sort-desc"></i>
<% end %>
<ul>
然而,即使在创建新的个人资料后,链接也会创建个人资料&#34;仍然存在。我怎样才能解决这个问题?
答案 0 :(得分:0)
您的错误在<% end %><% else %>
。您在if
之前关闭else
测试。结果:始终显示<%= link_to "New Profile", new_profile_path %>
!
删除第10行,它会正常工作。
答案 1 :(得分:0)
试试这个:
<% if !current_user.profile.blank? %>
<%= link_to profile_path(current_user.profile) do %>
<i class="fa fa-user"></i>Employee Profile<i class="fa fa-sort-desc"></i>
<% end %>
<% else %>
<%= link_to "New Profile", new_profile_path %>
<% end %>