2009-10-23 13 views
8

Ich bin seit etwa sieben Jahren .NET-Entwickler und habe in den letzten Jahren mit ASP.Net zusammengearbeitet. Ich verwende jetzt Ruby on Rails für einige Projekte, und ich möchte wissen, ob es etwas in Ruby on Rails gibt, mit dem man Master-Seiten-Typen machen kann?Gibt es eine Art Masterpage-Funktionalität in Ruby on Rails?

Im Grunde möchte ich einen Weg, um ein einheitliches Aussehen für die Website mit einer Kopf- und Fußzeile und so weiter zu bieten, und dann nur jede Seite seinen Inhalt darin haben. Wie erreichst du das?

+4

alle anderen nennt sie "Layouts" –

+2

http://guides.rubyonrails.org/layouts_and_rendering.html –

+0

@NSD Ich habe gesucht und habe nichts auf Masterseiten gefunden ... jetzt, dass ich weiß, dass sie sind Layouts außerhalb der .net-Umgebung genannt, werde ich lesen darüber lesen ... nicht versuchen, .net-Entwickler zu stereotypieren, gibt es eine Menge sehr gute –

Antwort

6

in Ihrem Rails-Projekt in app/layouts/application. (Html.erb | html.haml), dies ist das Layout oder Äquivalent für Master. Sie können auch andere Layouts erstellen und das Layout festlegen, für jede Aktion zu verwenden:

render :index, :layout => "awesome" 

oder das Layout für einen ganzen Controller angeben:

class PostController < ActionController::Base 
    layout "super_awesome" 
end 
0

Sie Layout verwenden können, die wie Masterseite sehen ist in ASP.Net, gibt es viele Wege Masterseite Ihre Bahn Anwendung zuweisen:

  1. Für einzelne Seite:
class EmployeesController < ApplicationController 
    layout "submaster" 
    # --- 
end 

Submaster bei app/views/layout/submaster.html.erb befindet

  1. Für ganze Anwendung:
class ApplicationController < ActionController::Base 
    layout "main" 
    #... 
end 

Haupt bei app/views/layout/main.html.erb befindet

  1. -Layouts zur Laufzeit:
class EmployeesController < ApplicationController 
     layout :emp_layout 

     def show 
     # --- 
     end 

     private 
     def emp_layout 
      @current_user.admin? ? "admin" : "submaster" 
     end 

end 

Wenn der aktuelle Benutzer ein Admin-Benutzer ist, erhalten sie ein Admin-Layout oder ein Submaster-Layout.

Wenn möglich, überprüfen Sie bitte die Ausbeute in den Schienen.