Rails3 маршрутизация: как направить два запроса в одну точку входа - PullRequest
1 голос
/ 20 января 2011

В моем контроллере я хотел бы использовать один и тот же код для новых запросов и запросов на редактирование. Как это:

def edit
  @tag= Tag.find(params[:id]) || Tag.new
end

Мой вопрос: как мне указать это в rout.rb (Rails3)?

1 Ответ

1 голос
/ 20 января 2011

Предположим, вы используете маршруты ресурсов, как этот:

# routes.rb
resources :tags

Это создаст новое и создаст для вас.

Предположим, что вы хотите, чтобы новые карты редактировались, но оставались без изменений, используйте следующее:

get "/tags/new" => "tags#edit", :as => :new_tag_path
resources :tags

Порядок важен. Верхний будет соответствовать первым. И поэтому, если путь /tags/new, он будет перенаправлен для редактирования действия. И поскольку он уже сопоставлен, он не выйдет из строя и поэтому, хотя resources :tags определяет также /tags/new для нового действия, ни одна маршрутизация не будет успешно сопоставлена.

Так что добавление только одной строки - это нормально.

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