[WB//Rails4]

Layout, czyli makieta aplikacji

[HTML5 Blog]

źródło: html5 doctor

Co oznacza słowo layout:

Jak korzystać z layoutów w aplikacjach Rails opisano w przewodniku Layouts and Rendering in Rails.

Layout na dobry początek: HTML KickStart – is an ultra–lean set of HTML5, CSS, and jQuery (javascript) files, layouts, and elements designed to give you a headstart and save you 10’s of hours on your next web project.

Layout „HTML KickStart” przystosowujemy do Rails analogicznie jak to zrobiono dla layoutu Twitter Bootstrap w rozdziale 5 Filling in the layout „Ruby on Rails Tutorial” M. Hartla.

Różne rzeczy na ten temat:

Co to są sitemaps?

Odpowiedzi udzielił stJhimy.

Przykładowy plik:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>http://sinatra.local/rails3/</loc>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>http://sinatra.local/rails3/fortunes/1</loc>
    <priority>1.0</priority>
  </url>
</urlset>

Taki plik wygenerujemy korzystając z XMLbuilder:

xml.instruct!
xml.urlset "xmlns" => "http://www.sitemaps.org/schemas/sitemap/0.9" do

  xml.url do
    xml.loc "http://sinatra.local/fortunes" # wstawiamy swój adres
    xml.priority 1.0
  end
  # dodajemy wszystkie fortunki (wystarczyłby indeks)
  @fortunes.each do |fortune|
    xml.url do
      xml.loc fortune_url(fortune)
      xml.priority 1.0
    end
  end
  # można dodać więcej linków, dla przykładu
  @posts.each do |post|
    xml.url do
      xml.loc post_url(post)
      xml.lastmod post.updated_at.to_date
      xml.priority 0.61
    end
  end
end

Wcześniej definiujemy @fortunes i dodajemy routing, np.

http://sinatra.local/fortunes/sitemap.xml

Na koniec aktywujemy sitemap dopisując w pliku public/robots.txt:

Sitemap: http://wbzyl.inf.ug.edu.pl/fortunes/sitemap.xml

Albo wykonujemy ping:

www.google.com/webmasters/tools/ping?sitemap=http://wbzyl.inf.ug.edu.pl/fortunes/sitemap.xml

[HTML5 Article Page Layout]

źródło: @boblet

Różne rzeczy…

Aktywne zakładki. Piszemy metodę pomocniczą, przykładowo:

def link_to_page(where, path)
  content_tag(:li,
      link_to_unless_current(where, path),
      class: current_page?(path) ? "active" : nil)
end

Dodajemy nieco CSS:

li.active {
  font-weight: bold;
  color: red;
}

i już! gotowe do użycia:

<%= link_to_page("Aktualności", root_path) %>
<%= link_to_page("Podstawowe informacje", informacje_path) %>

Zagnieżdzone layouty z content_for. Załóżmy, że aplikacja składa się z trzech kontrolerów:

i wszystkie kontrolery używają jednego layoutu – application.html.erb.

Przypuśćmy, że layouty dla kontrolerów muszą się nieco różnić, dla przykładu – kolorem tła.

Zamiast powielenia i edycji layouts/application.html.erb można postąpić tak. Tworzymy plik layouts/about.html.erb o zawartości:

<% content_for :head do %>
  <style>
    #background { background-color: #956E6F; }
  </style>
<% end -%>
<%= render :file => 'layouts/application' %>

a w layoucie aplikacji application.html.erb w pojemniku head dopisujemy:

<%= yield(:head) %>

i według tego schematu tworzymy plik layouts/contact.html.erb.