Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 没有与[PATCH]匹配的路由”/命令2“;_Ruby On Rails - Fatal编程技术网

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)%>