установленные вами значения определяют порядок перемещения фокуса клавиатуры между элементами на веб-сайте.
В следующем примере при первом нажатии вкладки курсор переместится на #foo, затем #awesome, а затем #bar
<input id="foo" tabindex="1" />
<input id="bar" tabindex="3" />
<input id="awesome" tabindex="2" />
Если вы не указали индексы табуляции в любом месте, фокус клавиатуры будет следовать тегам HTML вашей страницы в том порядке, в котором они определены в документе HTML.
Если вы набрали больше времени, чем указали tabindexes, фокус будет двигаться так, как если бы не были табуиндексы, то есть в порядке появления HTML-тегов
Основываясь ответ roninek , я нашел лучшее решение быть следующим:
в/app/helpers/application.rb:
def with_format(format, &block)
old_format = @template_format
@template_format = format
result = block.call
@template_format = old_format
return result
end
В/app/views/foo/bar.json:
<% with_format('html') do %>
<%= h render(:partial => '/foo/baz') %>
<% end %>
альтернативное решение должно было бы переопределить render
для принятия :format
параметр.
я не мог заставить render :file
работать с местными жителями и без некоторого пути wonkiness.
Что случилось с
render :partial => '/foo/baz.html.erb'
? Я просто попробовал это для рендеринга HTML ERB, неравнодушный из разработчика Atom шаблон, и это хорошо работало. Нет бездельничая с требуемыми глобальными переменными (да, я знаю, что они имеют перед ними, но это - то, что они).
Ваш with_format &block
подход прохладен, хотя, и имеет преимущество, что Вы только определяете формат, тогда как простой подход определяет движок шаблонов (ERB/builder/etc) также.
У Вас есть две опции:
1) использование render :file
render :file => "foo/_baz.json.erb"
2) шаблонный формат изменения к HTML путем установки @template_format переменной
<% @template_format = "html" %>
<%= h render(:partial => '/foo/baz') %>
Я наткнулся на эту тему, когда пытался отобразить частичный XML в другом файле представления xml.builder. Ниже приведен хороший способ сделать это
xml.items :type => "array" do
@items.each do |item|
xml << render(:partial => 'shared/partial.xml.builder', :locals => { :item => item })
end
end
И да... Полное имя файла работает и здесь...
Для Rails 3 блок with_format работает, но он немного отличается:
def with_format(format, &block)
old_formats = formats
self.formats = [format]
block.call
self.formats = old_formats
nil
end