【发布时间】:2015-06-02 11:07:51
【问题描述】:
我正在制作一个 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>
但是,即使在创建新配置文件之后,“创建配置文件”链接仍然存在。我怎样才能解决这个问题?
【问题讨论】:
-
您如何将 after_sign_up_path 重定向到 new_profile_path?
-
除了 de User 和 Profile 模型,还可以从命令行中为代码 User.find(ID).profile 添加结果
-
@rashed 首先,请更正您的代码,因为它包含
<% end %>和</li>的一些不匹配项
标签: ruby-on-rails ruby if-statement model devise