【问题标题】:Ruby on rails, path after Sending a post formRuby on rails,发送帖子表单后的路径
【发布时间】:2014-08-10 17:25:25
【问题描述】:

我在 /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 %>

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

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    这是因为当您点击表单的提交按钮时,它会将您带到创建操作,并且由于您尚未填写表单,因此它只会呈现您的表单但您仍在使用 create 方法因此您的条件失败有关详细信息,您应该查看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 %>
    

    【讨论】:

    • @Marko 很高兴听到这个消息 :)
    猜你喜欢
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    相关资源
    最近更新 更多