2016-06-29 4 views
0

私はルートページの最新のコンテンツブロックを作成したいと考えています。 例の4つの最新アイテムのみをリストします。 シンプルなコントローラの場合、どのようにすればよいのですか? ブログ、投稿、イラストなど 「最新のコンテンツ」ブロックを作成するために、4つの最も興味深いコンテンツを再編成する方法。 ありがとうございます。多くのコントローラ用の最新のコンテンツブロック

EDIT:

今、私は私のhome_controller私index.htlm.erbで

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 

に私は、最新の何かのためでブロックをしたいことがあります。 4つの最新のブログ、4つの最新のイラストなどがありますが、最新の4つはすべてです。

これを行うと、最新のブログが4つしかありません。

<% @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 %> 

質問は、残りの部分を追加する方法です。それは4 Blogsを最新取得する必要があります

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

: はたぶん

答えて

0

このようなものをありがとうございます。

コントローラのアクションでは、@シンボルのすべての変数がこのアクションに対応するビューで表示されます。たとえば、コントローラーがpageで、アクションがindexの場合はindex.html.erbpage_controllerの場合はdef indexメソッドがあります。このメソッドの内部では、これを書くことができます:あなたのindex.html.erbビューファイルで

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 

、あなたが@blogs@posts@illustrations変数にアクセスすることができます。

+0

ありがとうございます。私は知っているが、私はブログの内容だけでなく、 "最新のコンテンツ"ブロック内のすべてのコントローラの内容を再編成したい。 –

+0

コントローラ間でデータを共有したいですか? –

+0

No.レンダリング中。私はモデルを作成する必要がありますか?ヘルパー?私は初心者です。 –

関連する問題