Jam*_*coe 4 routing ruby-on-rails-3
我创建了一个名为"post"的自定义RESTful操作.它在TransactionsController中显示为名为post的(公共)方法.
resources :transactions do
member :post do
post :post
end
end
Run Code Online (Sandbox Code Playgroud)
我有一个配置如下的表单:
<form action="/transactions/25/post">
...
<input id="transaction_submit" commit="commit" type="submit" value="Post">
</form>
Run Code Online (Sandbox Code Playgroud)
当我点击"发布"按钮时,我的服务器收到:
POST "/transactions/25/post"
Run Code Online (Sandbox Code Playgroud)
我希望这在我的TransactionController中调用"post"方法,但我得到一个路由错误
ActionController::RoutingError (No route matches "/transactions/25/post"):
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢.
詹姆士
最后找到了一个解决方案,问题是form_for添加隐藏_method字段的值"put",因为事务已经存在,为了规避这个问题,我必须做以下事情:
<%= form_for @transaction, :url => post_transaction_path(@transaction), :html => { :method => :post } do |form| %>
Run Code Online (Sandbox Code Playgroud)
至少为我解决了这个问题,请参阅https://rails.lighthouseapp.com/projects/8994/tickets/4884-routing-error-for-restful-resource-under-namespace以获取进一步的参考
| 归档时间: |
|
| 查看次数: |
1974 次 |
| 最近记录: |