Как создать динамически созданный пакет в Rails 3? Breadcrumb является навигационным элементом, который используется для указания пользователю, где они находятся на сайте. например. Главная → Проекты → Этапы → Загрузки. Где дома, проекты, этапы и загрузки являются отдельными контроллерами. Ответ 1 Я использую почти тот же код за 10 лет... Написал его сначала в ASP, затем С#, PHP и теперь Rails: module NavigationHelper def ensure_navigation @navigation ||= [ { :title => 'Home', :url => '/' } ] end def navigation_add(title, url) ensure_navigation << { :title => title, :url => url } end def render_navigation render :partial => 'shared/navigation', :locals => { :nav => ensure_navigation } end end Тогда в shared/navigation.html.erb: <div class="history-nav"> <% nav.each do |n| %> <%= link_to n[:title], n[:url] %> <% end %> <%= link_to yield(:title), request.path, :class => 'no-link' %> </div> Ваш обычный просмотр: <% content_for :title, 'My Page Title' %> <% navigation_add 'My Parent Page Title', parent_page_path %> И ваш шаблон: <html> <head> <title> <%= yield :title %> </title> </head> <body> ... <%= render_navigation %> ... <%= yield %> </body> </html> Ответ 2 Предыдущий ответ может быть обновлен без использования <% content_for :title, 'My Page Title' %> <div class="history-nav"> <% nav.each do |n| %> <% unless n.equal? nav.last %> <%= link_to n[:title], n[:url] %> <% else %> <%= n[:title] %> <% end %> <% end %> </div>
Ответ 1 Я использую почти тот же код за 10 лет... Написал его сначала в ASP, затем С#, PHP и теперь Rails: module NavigationHelper def ensure_navigation @navigation ||= [ { :title => 'Home', :url => '/' } ] end def navigation_add(title, url) ensure_navigation << { :title => title, :url => url } end def render_navigation render :partial => 'shared/navigation', :locals => { :nav => ensure_navigation } end end Тогда в shared/navigation.html.erb: <div class="history-nav"> <% nav.each do |n| %> <%= link_to n[:title], n[:url] %> <% end %> <%= link_to yield(:title), request.path, :class => 'no-link' %> </div> Ваш обычный просмотр: <% content_for :title, 'My Page Title' %> <% navigation_add 'My Parent Page Title', parent_page_path %> И ваш шаблон: <html> <head> <title> <%= yield :title %> </title> </head> <body> ... <%= render_navigation %> ... <%= yield %> </body> </html>
Ответ 2 Предыдущий ответ может быть обновлен без использования <% content_for :title, 'My Page Title' %> <div class="history-nav"> <% nav.each do |n| %> <% unless n.equal? nav.last %> <%= link_to n[:title], n[:url] %> <% else %> <%= n[:title] %> <% end %> <% end %> </div>