2016-06-20 16 views
0

Ich verwende Rails 4.2.3. Ich bin ein wenig verwirrt über Layouts. Ich habe ein Anwendungslayout, das ich auf alle Seiten anwenden möchte. Ich habe auch einWie verschachtele ich ein Layout innerhalb eines anderen in Ror?

app/views/layouts/my_object.html.erb 

, Ich mag würde nur zu Methoden in meiner app/controllers/my_objects_controller.rb Datei anwenden, die oben auf dem ich

class MyObjectsController < ApplicationController 
    layout 'my_object' 

Das Problem ist, dass, wenn mein Die Ansicht wird gerendert, der Code aus dem Layout "mein_Objekt" wird gerendert, aber nicht der Code des Anwendungslayouts. Die my_object Layout sieht wie folgt aus

<%= stylesheet_link_tag "application", :media => "all" %> 
<%= stylesheet_link_tag "my_objects", :media => "all" %> 

<%= render 'tabs' %> 

<%= yield %> 

Wie kann ich eine Anwendung beide und my_object Layout bekommen zu machen?

Antwort

0

Weil die Art, wie Sie es geschrieben haben, nur die Art ist, das Anwendungslayout zu überschreiben.

Machen Sie Ihr Objekt zu einem Teil. Dies ist der Weg, es zu tun. Wenn Sie ein bestimmtes CSS an das partielle anhängen, vergessen Sie nicht, es der Datei application.css hinzuzufügen, damit es geladen werden kann.

=== hinzugefügt Dies wird in der Ansicht Ihrer MyObject Controller-Klasse sein.

<%= render 'myobject', layout: "my_objects", , object: @object %> 
+0

Ich bekomme immer noch nicht, was Sie erklären. Welches Objekt ist ein Partial? Was füge ich meiner application.css Datei hinzu? Wenn Sie ein Codebeispiel hinzufügen könnten, das das beste wäre. –

+0

Sie können das Objekt an die partielle übergeben, wie Sie für jede Ansicht tun würden. Dann rufe den Partiellen aus deiner Sicht auf. –

+0

http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials –