簡體   English   中英

如何在Ruby on Rails中顯示已刪除元素的名稱?

[英]How do I display the name of a deleted element in Ruby on Rails?

我有一個簡單的Rails應用程序,可以在其中創建對象(例如帖子)。 到目前為止,我可以一個一個地編輯和刪除它們,但是現在我想讓<%= notice %>在確認刪除的對象后顯被刪除的對象的名稱。 這可能嗎? 如果是這樣,怎么辦?

這是Rails中極為常見的任務,慣用的解決方案是通過Flash數組將有關已刪除記錄的一些數據轉發到后續的GET請求。

控制器的destroy動作應如下所示:

def destroy
  @post = Post.find(params[:id])
  @post.destroy

  redirect_to posts_path, notice: "#{@post.name} was deleted"
end

在索引操作中,您將可以訪問flash[:notice]以獲取在上一個操作中生成的字符串。

您需要將要回顯的詳細信息(例如名稱)存儲在某處,因為對象本身在重定向后將消失。 我會為此使用flash

# in the controller
def destroy
  thing = Thing.find(params[:id])
  thing.destroy

  redirect_to things_path, :notice => "Thing #{thing.name} was deleted"
end

# in the index view
<% if flash[:notice] %>
  <div class="notice"><%= flash[:notice] %></div>
<% end %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM