Ruby on rails 尝试使用Rails从列表中删除邮件

Ruby on rails 尝试使用Rails从列表中删除邮件,ruby-on-rails,model-view-controller,routes,Ruby On Rails,Model View Controller,Routes,因此,我有一个简单的消息列表,用户可以提交。我正在尝试为每条消息设置一个删除按钮(可以正常工作)。但是正如你所看到的,如果你点击按钮,你会得到一个关于完全不同的动作的错误。我不完全确定我错在哪里。我猜我在控制器区域的深度不够。以下是所有适用的文件 Routes.rb: Rails.application.routes.draw do root 'messages#index', as: :home get '/new' => 'messages#new', as: :edit res

因此,我有一个简单的消息列表,用户可以提交。我正在尝试为每条消息设置一个删除按钮(可以正常工作)。但是正如你所看到的,如果你点击按钮,你会得到一个关于完全不同的动作的错误。我不完全确定我错在哪里。我猜我在控制器区域的深度不够。以下是所有适用的文件

Routes.rb:

Rails.application.routes.draw do
 root 'messages#index', as: :home
 get '/new' => 'messages#new', as: :edit
 resources :messages
 post '/new' => 'messages#create', as: :create
 delete 'messages/:id' => 'messages#destroy', as: :delete 
有关控制人:

class MessagesController < ApplicationController
    def index
        @messages=Message.all
    end
    def new
        @messages=Message.new
    end
    def destroy
        @messages=Message.find(params[:id])
        @messages.destroy
    end
    def create
        @messages = Message.new(message_params) 
            if @messages.save 
            redirect_to '/' 
                else 
            render 'new' 
            end
    end
    private
    def message_params
        params.require(:message).permit(:content, :subject)
    end

end
class messages控制器
有关意见:

<div class="main">
    <div="messages">
        <%@messages.each do |t|%>
        <h2 class="subject"><%=t.subject%></h2>
        <p class="content"><%=t.content%></p>
        <%=link_to "Delete Message", delete_path(t)%>
        <% end %>
        <%=link_to "Create Message", edit_path%>
    </div>
</div>


您还需要传递方法
DELETE
,否则它将执行简单的
GET
请求。以下是方法:

<%=link_to "Delete Message", delete_path(t), :method => 'delete' %>
编辑2:

您得到的错误是
模板丢失
,因为在
销毁
方法中,您既没有
渲染
任何内容,也没有
重定向到
任何内容。销毁对象后,您必须告诉它应该放在哪里。例如,如果希望用户在销毁记录后转到“所有消息”页面,则需要在方法末尾添加以下行:

redirect_to messages_path 

您的链接只是执行HTTP
GET
的普通链接。你需要阅读HTTP方法和Rails.delete'messages/:id'=>'messages#destroy',as::delete将其更改为-get'messages/:id'=>'messages#destroy',将其更改为delete'messages/:id…etcetc不会更改任何内容我这样做了,我现在从外部源收到一个更大的错误。好的,事实上!这是可行的,但当我单击按钮时会出现错误,但是如果我返回并重新加载页面,消息就会消失。您已经编写了
参考资料:消息,并且您自己也在生成路由。为什么?<代码>资源:消息
将为您生成所有凝乳路线。好的,但“模板丢失”错误的原因是什么。我得到了错误,但是如果我返回并重新加载,消息就消失了。好吧,我解决了,我必须在销毁操作中附加重定向_到“/”,因为我没有嵌入的ruby模板。但你的答案仍然有效。
redirect_to messages_path