Ruby on rails 要编辑文章的rails路由问题

Ruby on rails 要编辑文章的rails路由问题,ruby-on-rails,rails-routing,Ruby On Rails,Rails Routing,我很难为我的一篇文章找到正确的编辑指南路径。我本以为“编辑指南路径(指南)”会起作用,但事实并非如此。我使用的是友好id,我认为这可能是问题的根源。我得到了错误 'No route matches [POST] "/guides/david-knight-maurizio-miele-anita-rowell-a-triangle-of-modern-art/edit"' 导向控制器 class GuidesController < ApplicationController befor

我很难为我的一篇文章找到正确的编辑指南路径。我本以为“编辑指南路径(指南)”会起作用,但事实并非如此。我使用的是友好id,我认为这可能是问题的根源。我得到了错误

'No route matches [POST] "/guides/david-knight-maurizio-miele-anita-rowell-a-triangle-of-modern-art/edit"'
导向控制器

class GuidesController < ApplicationController
before_action :authenticate_admin!, only: [:new, :create, :destroy, :edit]

def show
 @guide = Guide.friendly.find params[:id]
 render :layout => 'guide_show'
end

def index
 @title = "What's on?"
 @all_guides = Guide.all  
 @guide = Guide.up_coming
 @finished = Guide.finished.last(5)
 @current = Guide.active_at_date.all
end

def new
  @guide = Guide.new
end

def edit 
 @guide = Guide.friendly.find params[:id]
end

def update
 @guide = Guide.friendly.find params[:id]

 if @guide.update(guide_params) 
   flash[:notice] = "You have succesfully editted #{@guide.title}"
  redirect_to '/'
 else
  render '/new'
 end
end

def create
@guide = Guide.new(guide_params)
if @guide.save
  redirect_to '/guides'
else
    render 'new'
end
  end

 def destroy
  @guide = Guide.find params[:id]
  flash[:notice] = "You have succesfully deleted #{@guide.title}"
  @guide.destroy
  redirect_to '/guides'
 end

private

def guide_params
  params.require(:guide).permit(:id, :title, :description, :image, :image_extra, :date_starting, :date_ending, :extra_info)
end

end

发出POST请求,但编辑操作需要GET请求

你可以这样做

<%= button_to "Edit", guide, class: 'btn btn-default', method: :get %>

但这真的不是它应该如何工作。使用链接是首选方法。如果你需要它看起来像一个按钮,应用一些css的爱它

<%= link_to "Edit", guide, class: 'btn btn-default' %>


查看rake routescheers dude的输出,顶部答案,我就是这样做的。为什么首选链接?很高兴听到。使用
link\u to
时不需要
method::get
,也不需要
edit\u-guide\u-path
部分,
guide
就足够了
<%= button_to "Edit", edit_guide_path(guide), class: 'btn btn-default' %>
<%= button_to "Edit", guide, class: 'btn btn-default', method: :get %>
<%= link_to "Edit", guide, class: 'btn btn-default' %>