tôi biết rằng làmRubyOnRails: url_for gốc ứng dụng
url_for(:only_path => false, :controller => 'home')
tôi sẽ nhận được, ví dụ, http: // localhost/home
Nhưng làm thế nào để xử lý để genereate http:// localhost
tôi biết rằng làmRubyOnRails: url_for gốc ứng dụng
url_for(:only_path => false, :controller => 'home')
tôi sẽ nhận được, ví dụ, http: // localhost/home
Nhưng làm thế nào để xử lý để genereate http:// localhost
Tùy thuộc vào mục tiêu của bạn, có một số cách để sử dụng tên máy chủ hoặc URL cơ sở. Đối với trường hợp chung, "Tôi chỉ cần một URL cơ sở đáng tin cậy mà tôi có thể sử dụng ở bất cứ đâu", tôi sử dụng phương pháp cấu hình.
# via routes.rb
map.root :controller => "foo", :action => "bar"
# view/controller:
root_url # inflexible. root_url will only ever be one URL
# via request object
url_for("http://"+request.host) # not available in models
# via config file (see railscast 85)
# environment.rb
APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")[RAILS_ENV]
# config/config.yml
development:
server_name: localhost:3000
production:
server_name: foo.com
# view/controller:
url_for(APP_CONFIG('server_name'))
để có được http://localhost, bạn sẽ chỉ cần:
<%= link_to "Home", root_path %>
Điều đó sẽ tạo ra: <a href="/">Home</a>
mà hiệu quả sẽ liên kết đến http://localhost
Bạn cũng có thể sử dụng: ActionController :: Base. relative_url_root
tức là #{ActionController::Base.relative_url_root}/images/my_img.jpg
Đây là câu hỏi cũ nhưng vẫn xếp hạng cao trong tìm kiếm. Hiện tại, sử dụng root_url.
ví dụ:
<%= link_to "fully qualified root", root_url %>
sẽ tạo
<a href="http://www.example.com/">fully qualified root</a>
Để được rõ ràng, bản đồ root_path để "/" trong khi bản đồ root_url đến URL gốc tuyệt đối (ví dụ "http: // localhost: 3000 /") – user456584