运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

Rails 3中的路由问题:ActionController :: RoutingError(没有路由匹配……)

运维开发网 https://www.qedev.com 2020-06-17 17:59 出处:网络 作者:运维开发网整理
我创建了一个名为“post”的自定义RESTful操作.它在TransactionsController中显示为名为post的(公共)方法. resources :transactions do member :post do post :post end end 我有一个配置如下的表单: <form action="/transactions/25/post"> ...
我创建了一个名为“post”的自定义RESTful操作.它在TransactionsController中显示为名为post的(公共)方法.

resources :transactions do
  member :post do
    post :post
  end
end

我有一个配置如下的表单:

<form action="/transactions/25/post">
   ...
   <input id="transaction_submit" commit="commit" type="submit" value="Post">
</form>

当我点击“发布”按钮时,我的服务器收到:

POST "/transactions/25/post"

我希望这在我的TransactionController中调用“post”方法,但我得到一个路由错误

ActionController::RoutingError (No route matches "/transactions/25/post"):

有任何想法吗?谢谢.

詹姆士

最后找到了一个解决方案,问题是form_for添加了隐藏的_method字段,其值为“put”,因为事务已经存在,为了避免这个问题,我必须做以下事情:

<%= form_for @transaction, :url => post_transaction_path(@transaction), :html => { :method => :post } do |form| %>

至少为我解决了这个问题,请参阅https://rails.lighthouseapp.com/projects/8994/tickets/4884-routing-error-for-restful-resource-under-namespace进一步参考

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消