изменение действия контроллера маршрутизации рельсов - PullRequest
4 голосов
/ 02 декабря 2008

Я борюсь здесь с проблемой: У меня есть контроллер вопросы , который имеет действие новый . Всякий раз, когда мне нужно создать новый вопрос, я набираю

/questions/new

Какие изменения мне нужно внести в route.rb, чтобы изменить URI на

/questions/ask

Спасибо. Valve.

Ответы [ 3 ]

7 голосов
/ 02 декабря 2008

Попробуйте это:

map.ask_question   '/questions/ask', :controller => 'questions', :action => 'new'

Тогда у вас будет названный маршрут, и вы сможете:

link_to "Ask a question", ask_question_path
5 голосов
/ 02 февраля 2009

Если вы используете RESTful маршруты, возможно, вы захотите использовать map.resources для ваших вопросов .

Чтобы переименовать URL-адреса действий, вы можете сделать это:

map.resources :questions, :path_names => { :new => 'ask', :delete => 'withdraw' }

(я добавил delete для примера)

0 голосов
/ 02 декабря 2008

Какая версия рельсов?

Обычно маршрут по умолчанию должен перехватывать что-либо вроде /: controller /: action, поэтому вы можете просто создать метод ask в вашем контроллере вопросов. Посмотрите документацию API для named_route и map_resource, если вы хотите, чтобы с чем-то более плавным работал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...