我是铁杆的真正初学者。
我可以从一个控制器获得多条路线+多个动作吗?
例如,
resources :something
得到“某事#dedex”,“某事#show”,“某事#更新”......等等。
我只是好奇是否有命令从行动中获取路线名称。
例如,在名为“pledges”的控制器中,
class PledgesController < ApplicationController
def home
end
def abc
end
def defg
end
def hijk
end
end
任何命令都能得到“承诺#home”,“承诺#abc”,“承诺#defg”,“承诺#hijk”?
答案 0 :(得分:0)
如果没有安静的话,您将必须定义所有自定义操作(但我强烈建议您遵循其余约定)。例如:
get 'pledges' => 'abc'
post 'pledges' => 'defg'
put 'pledges' => 'hijk
答案 1 :(得分:0)
添加自定义,&#34;非RESTful&#34;路由到资源,您可以执行以下操作:
resources :pledges do
collection do
get :foo
end
member do
put :bar
end
end
collection
- 定义的路线会产生针对Pledge
整体的结果 - 请考虑index
路线。
member
- 已定义的路由会针对Pledge
的实例生成结果 - 请考虑show
路由。
这将为您生成以下路线:
foo_pledges GET /pledges/foo(.:format pledges#foo
bar_pledge PUT /pledges/:id/bar(.:format) pledges#bar
pledges GET /pledges(.:format) pledges#index
POST /pledges(.:format) pledges#create
new_pledge GET /pledges/new(.:format) pledges#new
edit_pledge GET /pledges/:id/edit(.:format) pledges#edit
pledge GET /pledges/:id(.:format) pledges#show
PATCH /pledges/:id(.:format) pledges#update
PUT /pledges/:id(.:format) pledges#update
DELETE /pledges/:id(.:format) pledges#destroy