根据用户是否已创建个人资料更改导航栏链接 (RoR)
Changing nav-bar links according to whether a user has created a profile or not (RoR)
我正在制作一个 rails 应用程序,并创建了一个运行良好的简单导航栏。我已经设置并创建了一个配置文件模型,我希望用户在注册后创建该模型,并且(我相信)我已经正确地建立了必要的关联。
作为新用户首次登录,我希望使用 new_profile_path 在导航栏中显示 "Create profile" link,但一旦该特定用户登录已创建 his/her 配置文件,我希望 "create Profile" 更改为 "View Profile" 并永久保持这种状态,这应该重定向到 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>
然而,即使在创建新配置文件后,link "Create Profile" 仍然存在。我怎样才能解决这个问题?
你的错误在这里<% end %><% else %>
。您在 else
之前关闭 if
测试。结果:一直显示<%= link_to "New Profile", new_profile_path %>
!
删除第 10 行,它将正常工作。
试试这个:
<% 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 %>
我正在制作一个 rails 应用程序,并创建了一个运行良好的简单导航栏。我已经设置并创建了一个配置文件模型,我希望用户在注册后创建该模型,并且(我相信)我已经正确地建立了必要的关联。
作为新用户首次登录,我希望使用 new_profile_path 在导航栏中显示 "Create profile" link,但一旦该特定用户登录已创建 his/her 配置文件,我希望 "create Profile" 更改为 "View Profile" 并永久保持这种状态,这应该重定向到 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>
然而,即使在创建新配置文件后,link "Create Profile" 仍然存在。我怎样才能解决这个问题?
你的错误在这里<% end %><% else %>
。您在 else
之前关闭 if
测试。结果:一直显示<%= link_to "New Profile", new_profile_path %>
!
删除第 10 行,它将正常工作。
试试这个:
<% 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 %>