Ruby on rails,发送帖子表单后的路径

时间:2014-08-10 17:25:26

标签: ruby-on-rails ruby

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

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

<% 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 %>

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

那是因为当您点击表单的提交按钮时,它会将您带到创建操作,因为您的避风港已经填写了表单,它只是将您的表单呈现为但是您仍然在创建方法上,因此您的条件失败 有关详细信息,您应该结帐this answer

<强>修正

您无法使用current_page?帮助因为你的创建方法和索引有相同的路径助手(只有http动词改变)所以如果你在current_page中使用contacts_path它将在索引动作中显示活动类同样你应该使用rails action_name helper 将检查你的行动名称,如果它是新动作或创建行动那么它将在你的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 %>