Итак, у меня есть простой список сообщений, которые пользователи могут отправлять. Я пытаюсь поместить кнопку удаления (которая работает) для каждого сообщения. Но, как вы можете видеть, here вы получаете ошибку об совершенно другом действии, если вы нажмете кнопку. Я не совсем уверен, где я ошибся. Я предполагаю, что я не в своей глубине в области контроллера. Вот все необходимые файлы.Попытка удалить сообщение из списка с рельсами
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
Соответствующий Вид:
<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>
Ваша ссылка просто нормальная связь, которая выполняет HTTP 'GET'. Вам нужно будет прочитать методы HTTP и Rails. – fylooi
delete 'messages /: id' => 'messages # destroy', as:: delete изменить this to - get 'messages /: id' => 'messages # destroy', –
Изменение его для удаления 'messages /: id. ..etcetc ничего не меняет –