アトトックラボ

2012年6月18日

Refinery CMSのHomeにBlogとNewsの一覧を表示

Posted by Yoichi Kurusaki

Refinery CMSのHomeにBlogとNewsの一覧を表示する。

1. pages_controller.rbの修正

app/controllers/refinery/pages_controller.rb


BlogとNewsを取得するメソッドを追加する。

before_filter :fetch_blog_posts, :only => [:home]
before_filter :fetch_news_items, :only => [:home]
def fetch_blog_posts
    @blog_posts = Refinery::Blog::Post.live.limit(5)
end
def fetch_news_items
    @news_items = Refinery::News::Item.live.limit(5)
end

2. pages_controller.rbの修正

app/views/refinery/pages/home.html.erb


BlogとNewsを出力するコードを追加する。

<ul id="blog_posts">
   <% @blog_posts.each do |blog_post| %>
      <li>
          <h3><%= link_to blog_post.title, blog_post_url(blog_post) %></h3>
          <%= sanitize (truncate blog_post.body, :length => 160)%></p>
          <%= link_to "Read more", blog_post_url(blog_post) %>
      </li>
    <% end %>
</ul>
<ul id="news_items">
   <% @news_items.each do |news_item| %>
      <li>
          <h3><%= link_to news_item.title, news_item_url(news_item) %></h3>
          <%#= sanitize (truncate news_item.body, :length => 160)%></p>
          <%#= link_to "Read more", news_item_url(news_item) %>
      </li>
    <% end %>
</ul>