Restful Routing - PullRequest
       3

Restful Routing

0 голосов
/ 08 января 2012

Я пишу простой поиск, который проверяет, существует ли имя пользователя в базе данных.До сих пор все было довольно просто.Однако, у меня есть проблема с тем, как я делаю свою маршрутизацию.

В настоящее время в моем route.rb у меня есть следующее:

namespace :broker do
    namespace :userdesk do
        resources :dashboards do
        end
        resources :accounts do      
            get :validateUsername
        end
    end
 end

Когда я использую рейковые маршруты, я получаю следующеемаршрут для validateUsername: broker_userdesk_account_validateUsername GET /broker/userdesk/accounts/:account_id/validateUsername(.:format) {:action=>"validateUsername", :controller=>"broker/userdesk/accoun ts"}

Для этого действия я передаю имя пользователя, а не account_id.Есть ли способ изменить маршрут, чтобы он использовал что-то вроде этого: /broker/userdesk/accounts/:username/validateUsername(.:format)

1 Ответ

1 голос
/ 08 января 2012

Прежде всего, это не кажется особенно Railsy или RESTful, но вы можете определить конкретный маршрут, используя match

match '/broker/userdesk/accounts/:username/validateUsername' => 'broker/userdesk/accounts#validateUsername'

ОБНОВЛЕНО

Рекомендую направляющие по направляющим: http://guides.rubyonrails.org/routing.html.

Я игнорировал ваши пространства имен в моих примерах.

Если вы вложены в ресурс учетных записей, вы можете рассчитывать на охват по учетной записи, а не по имени пользователя.

Было бы более RESTful попробовать что-то вроде /users/:id/validate.

На самом деле, если все, что вы делаете, проверяет, существует ли пользователь, вы можете нажать на действие show пользователей и обработать 404:

resources :users # would give you /users/:id where you would either return a user or a not found (400)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...