[英]Rails - only_path provides the full URL for a link. How can you obtain the variable outside of link_to?
使用 link_to 時:
<%= link_to('View', group_url(136, :only_path => false)) %>
您可以使用 only_path 來獲取 url output 和http://www.site.com/groups/1
如果沒有 only_path,你會得到 /groups/1
我怎樣才能得到rails中的路徑? 在link_to 之外? 如何獲得: http://www.site.com
我想創建 hash 深層鏈接 URL 的原因,所以我正在考慮這樣做:
<%= link_to('View', XXXXXX + "#" +group_url(136, :only_path => true)) %>
其中 XXXXXX 是 url、 http://www.site.com
這會給我我想要的東西:
http://www.site.com/#/groups/1
謝謝
在 controller 中, request.env['HTTP_HOST']
將包含傳入請求的主機部分,因此您可以創建一個幫助方法來返回格式正確的“基本 url”,執行如下操作:
def site_root_url
if request.env['HTTPS'] == 'on'
proto = 'https'
else
proto = 'http'
end
"#{proto}://#{request.env['HTTP_HOST']}"
end
request.host
返回主機(“www.your_site.com”)
request.protocol
返回協議,例如http://
或https//
request.host_with_port
返回帶有主機的端口(“www.your_site.com:3456”)
<%= link_to('View', request.host + "#" +group_url(136, :only_path => true)) %>
<%= link_to('View', request.protocol + request.host + "#" +group_url(136, :only_path => true)) %>
<%= link_to('View', request.protocol + request.host_with_port + "#" +group_url(136, :only_path => true)) %>
編輯
黑客:
host = group_url(136).gsub(/#{group_url(136, :only_path => true)}/, "")
或者
url = group_url(136)
path = group_path(136)
host = url.gsub(/#{path}/, "")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.