Ruby on rails 没有与[PATCH]匹配的路由”/命令2“;
在过去的一两个小时里,我试着用类似的问题来回答我的具体情况,但一直没有奏效 我在尝试编辑和Ruby on rails 没有与[PATCH]匹配的路由”/命令2“;,ruby-on-rails,Ruby On Rails,在过去的一两个小时里,我试着用类似的问题来回答我的具体情况,但一直没有奏效 我在尝试编辑和订单时遇到以下错误,但在创建订单时却没有遇到此错误,这就是为什么我感到困惑的原因,因为我使用了相同的表单partial,它以{class:“form horizontal”,role:“form”})do | f |%> 我的路线.rb是: get 'dashboard', to: 'order#index' get 'order', to: 'order#new' post 'order', to: 'o
订单时遇到以下错误,但在创建订单时却没有遇到此错误,这就是为什么我感到困惑的原因,因为我使用了相同的表单partial,它以{class:“form horizontal”,role:“form”})do | f |%>
我的路线.rb
是:
get 'dashboard', to: 'order#index'
get 'order', to: 'order#new'
post 'order', to: 'order#create'
get 'edit/:id', to: 'order#edit', as:'edit'
post 'edit/:id', to: 'order#update'
get 'accept/:id', to: 'order#accept', as: 'accept'
get 'submit/:id', to: 'order#submit', as: 'submit'
我不知道发生了什么,因为我习惯于POST
和GET
,但不习惯PATCH
,我尝试自己研究我的问题,但找不到任何解决方案
答案在聊天评论中您的路线顺序。2表示您正在视图中执行类似于订单路径(@someid)的操作,但没有为需要id的订单定义路线。如果您需要路线特定id,请执行以下操作
get'order/:id',to:'controller#action',as::order
然后在你看来
order\u路径(@someid)
Patch和put用于更新数据而不是创建..对于此问题,您必须首先更新路由,如下代码所示
routes.rb
为添加创建时间和更新时间链接创建一个帮助器函数
def order_form_path(object)
object.new_record? ? "/order" : order_path
end
现在在您的表单中为
部分使用上面的helper函数
<%=form_for(@order,url:order_form_path(@order)%>
希望这将有助于将此补丁'edit/:id',改为:'order#update'
以更新您的表单需要补丁方法而不是post。由于某些原因,它无法修复此问题。请按资源顺序扫描您向我显示链接到
以进行编辑操作
<%=form_for(@order,url:order_form_path(@order)%>