Перезапись URL в ROR - PullRequest
       2

Перезапись URL в ROR

0 голосов
/ 16 июля 2010

Я Амит. я новичок в Rails. Пожалуйста, прости меня, если спросить глупо вопросы.

Я прошел эту статью. Я тоже страдаю с тем же проблема.

URL моего сайта, например: locahost: 3000 / users / edit / 30

Я не хочу показывать контроллер: пользователи и действие: редактировать.

Я хочу перезаписать (переписать) URL-адрес или сохранить его как http://127.0.0.0:3000/30/ только. (30 - идентификатор пользователя)

Мне не интересно показывать контроллер (пользователя) и действие (редактировать)

Я намерен скрыть (HIDING) и переписать (REWRING) URL и в основном я хочу скрыть расширения URL с контроллером и действиями главным образом ..

Ответы [ 3 ]

2 голосов
/ 16 июля 2010

Странное требование - использовать маршрут таким образом, поскольку вам будет сложно расширить эту схему для поддержки других действий в вашем приложении. Одним из преимуществ соглашений Rails, заключаемых в том виде, в каком они есть, является то, что вам обычно не нужно беспокоиться о (часто тривиальных) деталях приложения или иметь твердое мнение о них.

Но если вы действительно, очень хотите, вы можете добавить это к своему config/routes.rb

ActionController::Routing::Routes.draw do |map|
  map.connect "/:id", :controller => "users", :action => "edit"
end

Помните, что эта ограниченная схема будет означать, что вы можете только направить к действию редактирования. Не очень полезно, я бы предложил.

1 голос
/ 16 июля 2010

Файл rails route.rb - это ваш ответ:

Здесь содержится много информации о том, как именно вам нужно:

http://guides.rails.info/routing.html#customizing-resourceful-routes

0 голосов
/ 16 июля 2010

Для большинства приложений я использовал стандарт:

/script.cgi?arg1=foo&arg2=bar

Теперь очевидно, что / user / edit / eric выглядит намного лучше для URL, который включает редактирование пользователя "Эрик". Но как это работает, когда у вас есть несколько предметов. Например, если я хочу удалить группу пользователей. я может иметь что-то вроде этого по-старому:

/user/delete.cgi?id=3&id=5&id=7

или для более читаемого формата мы могли бы иметь:

/user/delete.cgi?username=eric&username=john&username=paul

Это, конечно, предполагает, что имена пользователей уникальны. :) Так что кажется, что я хотел бы что-то вроде:

/user/delete/eric/john/paul

Это делает очевидным, что происходит с URL. Но как мне генерировать это? И если действие получает этот запрос, как это получить разобрал так у меня что то типа:

@delete_usernames ===>>> [ 'eric', 'john', 'paul' ]

Таким образом, я могу загрузить этих пользователей и удалить их. я знаю это ActionController предоставляет несколько методов для работы с перезаписью URL но я не уверен, как лучше всего их использовать. Любая помощь или указатели очень оценили.

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