如何在 Rails 上显示 Ruby 中已删除元素的名称?
How do I display the name of a deleted element in Ruby on Rails?
我有一个简单的 Rails 应用程序,我可以在其中创建对象(例如帖子)。到目前为止,我可以一个接一个地编辑和删除它们,但现在我想要 <%= notice %>
回显 确认删除后删除的对象的名称。这可能吗?如果是,怎么做?
这在Rails中是一个极其常见的任务,惯用的解决方案是通过the 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 %>
我有一个简单的 Rails 应用程序,我可以在其中创建对象(例如帖子)。到目前为止,我可以一个接一个地编辑和删除它们,但现在我想要 <%= notice %>
回显 确认删除后删除的对象的名称。这可能吗?如果是,怎么做?
这在Rails中是一个极其常见的任务,惯用的解决方案是通过the 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 %>