簡體   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