Я ищу способ использовать что-то похожее на link_to_unless_current
, но для суб-URL, например, для обоих этих URL-адресов:
/entity_name/
/entity_name/123
будет , а не будет результатом ссылки. Как мне этого добиться в Rails?
UPD: Решил это по-своему, пожалуйста, Руби подкованный, дай мне знать, если это хорошо.
module ApplicationHelper
def link_to_unless_current_or_sub(name, options = {}, html_options = {}, &block)
link_to_unless current_page_or_sub?(options), name, options, html_options, &block
end
private
def current_page_or_sub?(options)
url_string = CGI.unescapeHTML(url_for(options))
request = @controller.request
if url_string.index("?")
request_uri = request.request_uri
else
request_uri = request.request_uri.split('?').first
end
request_uri.starts_with?(url_string)
end
end
Использование:
<%= link_to_unless_current_or_sub("Users", users_path) %>