Рельсы: замена помощника _url для динамических ссылок

#ruby-on-rails #routes #rails-routing

#ruby-on-rails #маршруты #рельсы-маршрутизация

Вопрос:

Я использую Rails 2.3.9. и у меня есть типовой проект, для которого у меня есть url_name столбца. Я добавил универсальный маршрут в routes.rb, чтобы я мог обрабатывать входящие URL-адреса, такие как:

www…/1-folder-nr

www…/2-folder-test

www…/3-rails (вы поняли идею).

До этого у меня был project_books_url (@project) для использования в контроллере и представлениях.

Но теперь мне нужно что-то, чтобы заменить этот project_books_url (@project), что-то, что сгенерирует мне полный URL?

Есть ли что-то, что действует так же, как помощник xxx_url, чтобы я мог использовать его в контроллере?

Если у кого-то есть какие-либо идеи или предложения, мы будем очень признательны. Спасибо.

Ответ №1:

Почему бы вам просто не написать вспомогательный метод, который генерирует все, что вы хотите?

 def project_books_path(project)
  "/#{project.to_param}"
end
helper_method :project_books_url
  

Комментарии:

1. Спасибо, я добавил вспомогательный метод, и он помогает в некоторой части приложения, но все еще есть части, где мне нужен полный URL, а не только / 3-test, мне нужно http://…./3-test будут возвращены, есть идеи?

2. Предположительно, вы можете настроить определение пути в соответствии с вашими потребностями, верно?

Ответ №2:

Вы можете использовать метод

  url_for(:controller :action)
  

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-url_for