我想只更改控制器某些操作的路径。
例如,我在ExampleController
上执行了以下操作。
我希望我可以在路径new
上执行create
,delete
,update
和/admin/example/
个操作,然后完成剩下的工作({{1} }和index
)可在show
上找到。
当然,我可以通过添加以下新路线来实现这一目标:
/example
但我不想为每个控制器都这样做。我尝试了以下操作:
match "/admin/example/:id/destroy", to: "example#destroy", via: "destroy"
这似乎有效,但每当我想创建一个新的scope '/admin' do
resources :example, only: [:new, :edit, :create, :update, :destroy]
end
resources :example, only: [:index, :show]
对象时,它会给我以下错误:
example
它也会在网址No route matches [POST] "/example"
而不是/example
我是在正确的轨道还是我在这里做了一些完全错误的事情。我想将所有基于/admin/example
的操作保存在同一个控制器中。
更新:我根据@apneadiving的回答尝试了以下内容:
example
但是,在呈现表单时,他的结果是<%= form_for [:admin, @example] do |f| %>
<% end %>
,并带有消息:
NoMethodError
答案 0 :(得分:0)
您必须向表单提供详细信息。
form_for @post
正在寻找[POST] "/example"
所以使用:
form_for [:admin, @post]