2010-08-17 3 views
5

이 같은 수 있습니다 생성 routes.rb재정의 방법은

map.resources :users 

라우트에 다음과 같은 줄 것을 감안할 때 HTTP 방법으로 POST /users{:controller=>"users", :action=>"create"}으로 매핑되는 대신 PUT이 사용 되었습니까? 나는이가이 노선에 사용되는 HTTP 방법을 변경할 수 있다면, 난 그냥 궁금 해서요 편안하고 라우팅을위한 정확하지 않을 것이라는 점을 이해

 users GET /users(.:format)   {:controller=>"users", :action=>"index"} 
      PUT /users(.:format)   {:controller=>"users", :action=>"create"} 
    new_user GET /users/new(.:format)  {:controller=>"users", :action=>"new"} 
    edit_user GET /users/:id/edit(.:format) {:controller=>"users", :action=>"edit"} 
     user GET /users/:id(.:format)  {:controller=>"users", :action=>"show"} 
      PUT /users/:id(.:format)  {:controller=>"users", :action=>"update"} 
      DELETE /users/:id(.:format)  {:controller=>"users", :action=>"destroy"} 

:

rake routes 사항은 다음과 같이 생성 할 .

답변

2

사용자를 만들려면 /users을 PUT으로 허용하는 경로를 명시 적으로 추가 할 수 있지만 기존 POST 경로는 대체하지 않습니다.

map.connect '/users(.:format)', 
    :controller => 'users', 
    :action => 'create', 
    :conditions => { :method => :put } 

당신은 또한이 같은 경로가 발생합니다 :member => { :create => :put }을 추가하여 사용자를 생성하기위한 새로운 경로를 추가 할 수 있습니다

create_users PUT /users/create(.:format) {:action=>"create", :controller=>"users"} 

을하지만 난 그게 당신이 물어 정확히 언급하지 않는 것을 감사 !

+0

이것은 기본적으로 내가 지금까지 해왔 던 것입니다. 추가 경로가 없어도 map.resources로 만든 경로에서 사용되는 방법을 바꿀 수 있기를 바랍니다. –

1

map.resources :users, :member =>{:create => :put} 

을 정의하는 것은 :users을 위해 그것을 할 것입니다. 액션 컨트롤러의 메서드 이름과 같은 기본 대체에 대해 잘 모르겠습니다.

config.action_controller.resources_path_names = { :new => "create", 
     :edit => "change" } 

어떤 질문을했을지 모릅니다.