В модели Rails я хочу узнать узел и порт. Например, если я нахожусь в тестовой среде, он вернет http://localhost:3000/
, и если бы я был в производстве, он возвращал бы что-то вроде http://my.application.com/
?
Как получить хост и порт в приложении Rails
Ответ 1
host_with_port
должен работать на вас:
http://apidock.com/rails/ActionDispatch/Http/URL/host_with_port
Ответ 2
"#{root_url}"
который должен быть объявлен на ваших маршрутах. rb
Ответ 3
Вы можете использовать это
<%= request.protocol + request.host_with_port %>
#=> https://example.com:3000
<%= request.protocol + request.host %>
#=> https://example.com
Когда вы используете в конкатенации строк
"#{request.protocol}#{request.host_with_port}/book/1"
# https://example.com:3000/book/1
Ответ 4
Вы можете получить эти значения в своих контроллерах (request.host, request.port и т.д.).
Вам придется отдать это своим моделям через параметры, поскольку объект запроса доступен только в контроллерах.
Ответ 5
вы можете получить полный uri (http://localhost:3000/ или http://my.application.com/ и т.д.) с помощью request_uri
http://apidock.com/rails/ActionController/AbstractRequest/request_uri
Ответ 6
Request.host
http://api.rubyonrails.org/classes/ActionController/Request.html#M000712