Я не совсем уверен, почему есть разница, поскольку ее не должно быть.
Однако link_to
обычно имеет такой формат:
= link_to("Some link description here", root_path)
Единственный раз, когда выкак правило, пропускайте текст описания ссылки, если у вас есть более длинное описание, которое нужно поместить в блок do
, например:
= link_to(root_path) do
%p Some link description here
= image_tag("some_image.jpg")
Поэтому я бы рекомендовал придерживаться приведенных выше предпочтительных синтаксисов.
В документах по link_to
на самом деле не говорится о слишком коротком методе, который вы используете.
Вот его источник:
# File actionpack/lib/action_view/helpers/url_helper.rb, line 231
def link_to(*args, &block)
if block_given?
options = args.first || {}
html_options = args.second
link_to(capture(&block), options, html_options)
else
name = args[0]
# this is probably where your issue is coming from
options = args[1] || {}
html_options = args[2]
html_options = convert_options_to_data_attributes(options, html_options)
url = url_for(options)
href = html_options['href']
tag_options = tag_options(html_options)
href_attr = "href=\"#{ERB::Util.html_escape(url)}\"" unless href
"<a #{href_attr}#{tag_options}>#{ERB::Util.html_escape(name || url)}</a>".html_safe
end
end