Ruby on rails 如何向用户显示特定链接';在rails中的特定页面上登录了什么?
我的部分导航代码如下:Ruby on rails 如何向用户显示特定链接';在rails中的特定页面上登录了什么?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我的部分导航代码如下: <% if user_signed_in? %> <li><%= link_to 'Edit Profile', edit_profile_path(current_user.profile) %></li> <li><%= link_to 'Edit Account', edit_user_registration_path %></li> <% elsif
<% if user_signed_in? %>
<li><%= link_to 'Edit Profile', edit_profile_path(current_user.profile) %></li>
<li><%= link_to 'Edit Account', edit_user_registration_path %></li>
<% elsif user_signed_in? and params[:controller] == 'profiles#edit' %>
<li><%= link_to 'View Profile', profile_path(current_user.profile) %></li>
<li><%= link_to 'Edit Account', edit_user_registration_path %></li>
<% else %>
<li><%= link_to 'Sign up', new_user_registration_path %></li>
<% end %>
我希望根据“用户登录”的位置显示不同的链接。但是,我的
似乎不起作用
我做错了什么?
profiles
是您的控制器,edit
是您的操作,因此您需要将它们指定为单独的内容:
elsif user_signed_in? && params[:controller] == 'profiles' && params[:action] == 'edit'
profiles
是您的控制器,edit
是您的操作,因此您需要将它们指定为单独的内容:
elsif user_signed_in? && params[:controller] == 'profiles' && params[:action] == 'edit'
如果要确定显示链接或隐藏链接的“url”,可以使用:
if request.path == "/profiles/edit"
或者你想要的网址。正如您所猜测的,路径的格式也接受通配符:/profiles/*如果您想确定显示链接或隐藏链接的“url”,可以使用:
if request.path == "/profiles/edit"
或者你想要的网址。正如您所猜测的,路径的格式也接受通配符:/profiles/*您可以使用
params[:controller]
,但它只包含控制器的名称<代码>参数[:操作]将包含操作名称
甚至清洁器也要使用controller\u name
和action\u name
,这也是可用的
像这样:
<% elsif user_signed_in? and controller_name == 'profiles' and action_name == 'edit' %>
在你看来的某个地方。当然是暂时的:)但是你会马上知道为什么你的情况不起作用
HTH.您可以使用
参数[:controller]
,但它只包含控制器的名称<代码>参数[:操作]将包含操作名称
甚至清洁器也要使用controller\u name
和action\u name
,这也是可用的
像这样:
<% elsif user_signed_in? and controller_name == 'profiles' and action_name == 'edit' %>
在你看来的某个地方。当然是暂时的:)但是你会马上知道为什么你的情况不起作用
HTH.除了其他人已经提到的以外,在编写本代码时,当
用户登录时为true
时,您将始终落入第一个块,并且从不点击elsif
块。
您必须修复处理控制器和操作的条件,并将此作为第一个条件,以便您的代码能够按预期执行。除了其他人已经提到的内容之外,在编写此代码时,当user\u signed\u in?
为true
时,您将始终进入第一个块,并且从不点击elsif
块。
您必须修复处理控制器和操作的条件,并将其作为第一个条件,以便代码按预期执行。从技术上讲,参数[:controller]和控制器名称之间有什么区别?一个比另一个更好吗?我个人更喜欢controller\u name
。在ruby/rails中,有很多方法可以实现相同的目标,选择一种你最喜欢的方法。感谢您花时间回答和解释。从技术上讲,params[:controller]和controller_name之间有什么区别?一个比另一个更好吗?我个人更喜欢controller\u name
。在ruby/rails中,有很多方法可以实现相同的目标,选择一种你最喜欢的方法。谢谢你花时间回答和解释。谢谢你的提醒。我相信你帮我省了几分钟的时间。好的,我完全忽略了:)谢谢你的提醒。我相信你帮我省了几分钟的困惑。好的,我完全忽略了这一点:)