#ruby-on-rails #ruby-on-rails-3
#ruby-on-rails #ruby-on-rails-3
Вопрос:
Есть ли простой способ изменить метод по умолчанию, к которому привязан конкретный HTTP-глагол при работе с маршрутизацией RESTful в rails? Допустим, у каждого из моих контроллеров модели есть действие delete вместо destroy, однако, когда я использую:
link_to "Delete", some_object, :method => :delete
Rails выполняет то, что должно, и направляет к действию destroy контроллера моего ресурса. Вместо этого я хотел бы перенаправить к действию с именем delete. Вот и все.
Я знаю, что могу просто использовать псевдоним ruby в своих контроллерах или добавить пользовательский маршрут участника для каждого из моих ресурсов, но есть ли более простой способ сделать это, чтобы внести изменения во все приложение? Спасибо!
Комментарии:
1. Меня интересует ответ из любопытства. Однако основной вопрос заключается в том, почему вы хотите это сделать? Зачем нарушать соглашение?
2. Я не из тех, кто нарушает соглашение, но я обновил старое приложение до Rails 3, которое использует метод delete вместо destroy в своих контроллерах. Я хочу сначала обновить маршруты и представления, прежде чем возиться с любым кодом контроллера. Это изменение было бы очень временным.
Ответ №1:
Если вы используете псевдоним в своем ApplicationController, то он будет передаваться на другие ваши контроллеры, которые наследуются от него.
Это будет функционировать так, как вы этого хотите.
Предупреждение: rails — это самоуверенное программное обеспечение, и, как правило, вам не захочется слишком далеко отходить от того, как работает rails. И rails любит стандартные действия REST.