2016-06-29 18 views
0

Ich bin auf der Suche nach einem neuen Content-Block für die Root-Seite erstellen. Listen Sie nur 4 letzte Elemente für das Beispiel. Ich verstehe, wie machen Sie das für einen einfachen Controller, etwas tun | Post |, aber ich habe viele Controller. Blog, Post, Illustration, etc. Wie man die 4 am meisten vorhandenen Inhalte für den Block "neueste Inhalte" umgruppieren. Danke.Rails neueste Content-Block für viele Controller

EDIT:

Nun, da ich habe in meinem home_controller

def index 
    @titre = "Accueil" 
    @blogs = Blog.order(created_at: :desc).limit(4) 
    @makingofmangas = Makingofmanga.order(created_at: :desc).limit(4) 
    @illustrations = Illustration.order(created_at: :desc).limit(4) 
    @materiels = Materiel.order(created_at: :desc).limit(4) 
end 

In meinem index.htlm.erb möchte ich einen Block mit nur für die neuesten etwas. Nr. 4 neuesten Blogs und 4 neuesten Illustrationen, etc., aber 4 neuesten von allen.

Wenn ich das tue, habe ich nur die 4 neuesten Blog.

<% @blogs.each do |blog| %> 
<div class="row"> 
<div class="col-md-3"> 
<div class="card"> 
<div class="card-image"><%= image_tag blog.couverture.url(:hd) %> 
<h3 class="card-image-headlineombre"><%= blog.title %></h3> 
</div> 
<div class="card-body"> 
<%= link_to 'Lire le billet&nbsp;&nbsp;<i class="fa fa-chevron-right" aria-hidden="true"></i>'.html_safe, blog, { :class=>"btn btn-raised btn-info" } %> 
</div> 
</div> 
</div> 
<% end %> 

Die Frage ist, wie man den Rest hinzufügt, um das zu machen, was ich will? Danke

Antwort

0

Vielleicht so etwas wie folgt aus:

@blogs = Blog.order(created_at: :desc).limit(4) 

Es spätestens vier Blogs bekommen müssen.

In Ihrer Controller-Aktion sind alle Ihre Variablen mit dem Symbol @ in der Ansicht sichtbar, die dieser Aktion entspricht. Wenn Ihr Controller zum Beispiel page ist und die Aktion index ist, wird es index.html.erb haben und in Ihrem page_controller wird es def index Methode geben. Innerhalb dieser Methode können Sie schreiben:

def index 
    @blogs = Blog.order(created_at: :desc).limit(4) 
    @posts = Post.order(created_at: :desc).limit(4) 
    @illustrations = Illustration.order(created_at: :desc).limit(4) 
end 

In Ihrem index.html.erb View-Datei, die Sie @blogs, @posts und @illustrations Variable zugreifen können.

+0

Vielen Dank. Ich weiß das, aber ich möchte alle Controller-Inhalte im Block "neueste Inhalte" neu gruppieren, nicht nur den Inhalt des Blogs. –

+0

Sie möchten Daten zwischen Controllern freigeben? –

+0

Nein. In einem Render. Ich muss ein Modell erstellen? Helfer? Ich bin ein Anfänger. –