Как мне написать полный путь в контроллере в Rails 3? - PullRequest
1 голос
/ 03 мая 2011

Мне нужно написать полный путь, поэтому нужно знать, что такое домен rails_root. Как я могу это сделать? Например:

string = "{RAILS_ROOT}/vendors/#{@vendor.id}"

Что эквивалентно RAILS_ROOT, чтобы дать мне полный домен моего приложения? Так что в разработке он заменил бы localhost: 3000 и на моем сайте heroku правильный полный домен?

Ответы [ 3 ]

2 голосов
/ 03 мая 2011

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

Если ваши маршруты настроены правильно, вы сможете позвонить:

link_to "View vendor", vendor_url(@vendor.id)

Vendor_url(@vendor.id) в Rails дает вам полный URL-адрес, который затем можно указать в переменной string. Вот как сгенерировать маршруты, необходимые для вышеуказанного:

# in routes.rb
resources :vendors
0 голосов
/ 03 мая 2011

Вы можете получить доступ к объекту запроса. request.host_with_port даст вам имя хоста и порт. request.protocol даст вам протокол (http: // или https://). request.fullpath даст вам путь с параметрами запроса.

0 голосов
/ 03 мая 2011

Попробуйте:

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