繁体   English   中英

Ruby on Rails,发送邮件后的路径

[英]Ruby on rails, path after Sending a post form

我在/ contact / new上有一个表单,当我单击“发送”时,但在服务器上进行验证后用户未填写一些text_field(如果@ contact.valid?),则用户被重定向到/ contact /。

我有一个导航栏,然后突出显示失败。

<% if current_page?(new_contact_path) %>
    <li class="hover-mouse active-menu"><%= link_to "Contact", new_contact_path%></li>
<% else %>
    <li class="hover-mouse"><%= link_to "Contact", new_contact_path%></li>
<% end %>

有人知道该如何解决吗?

这是因为,当您单击表单的“提交”按钮时,它将带您进入创建动作,并且由于尚未填写表单,它只是将表单呈现回去, 但是您仍在使用create方法,因此条件失败。有关详细信息,查看this answer

固定

您不能使用current_page? 帮助器,因为您的create方法和索引具有相同的路径帮助器(仅http动词更改),因此,如果您在current_page中使用contacts_path,它也会在索引操作中显示活动类,因此您应该使用rails action_name帮助器将检查您的操作名称,如果是新动作或创建动作,则它将在您的li上应用活动类

<% if action_name == "new" || action_name == "create" %>
  <li class="hover-mouse active-menu"><%= link_to "Contact", new_contact_path%></li>
<% else %>
  <li class="hover-mouse"><%= link_to "Contact", new_contact_path%></li>
<% end %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM