home.html.erb
2 つのレンダリングを結合しようとしているstatic_page に 1 つのフィードがあります。
これが私が意味することです:
まず、これは私のコントローラーです
class StaticPagesController < ApplicationController
def home
if signed_in?
@micropost = current_user.microposts.build
@activities = PublicActivity::Activity.order("created_at desc").paginate(page: params[:page])
@feed_items = current_user.feed.paginate(page: params[:page])
else
redirect_to root_path
end
end
これは私がビュー内で使用しているものです
<%= render partial: 'shared/feed_item', collection: @feed_items %>
<%= will_paginate @feed_items %>
I want to join intoでレンダリングされているビューshared/feed_item
を次に示します。これにより、両方が同じリストに降順で表示されます@feed_items
@activities
@feed_items
<li id="<%= feed_item.id %>">
<br>
<%= link_to gravatar_for(feed_item.user), feed_item.user %>
<%= link_to feed_item.user.name, feed_item.user %>
<span class="textname">shared this</span><span class="timestamp"> <%= time_ago_in_words(feed_item.created_at) %> ago.
</span>
</li>
if-else の何らかの形式を使用して、@activities
以下のこのビューを上記のコードに統合して、それらを 1 つのリストの一部にすることはできますか?
<li>
<% if activity.trackable_type == "Micropost" %>
<span class="user"><%= link_to activity.owner.name, activity.owner if activity.owner %></span><span class="textname"> posted this</span><span class="timestamp"> <%= time_ago_in_words(activity.created_at) %> ago.
</span>
<% else %>
<span class="user"><%= link_to activity.owner.name, activity.owner if activity.owner %></span><span class="textname"> made a comment</span><span class="timestamp"> <%= time_ago_in_words(activity.created_at) %> ago.
</span>
<% end %>
</li>
_activity.html.erb と _feed_items.html.erb を結合して作成した完全な _item.html.erb
<li>
<% if item.class == PublicActivity::Activity %>
<% if activity.trackable_type == "Post" %>
<%= link_to activity.owner.name, activity.owner if activity.owner %><span class="textname"> posted </span><span class="timestamp"> <%= time_ago_in_words(activity.created_at) %> ago.
</span>
<% else %>
<%= link_to activity.owner.name, activity.owner if activity.owner %><span class="textname"> made a comment</span><span class="timestamp"> <%= time_ago_in_words(activity.created_at) %> ago.
</span>
<% end %>
<% else %>
<br>
<span class="user">
<%= link_to feed_item.user.name, feed_item.user %>
</span>
<span class="textname">shared this</span><span class="timestamp"> <%= time_ago_in_words(feed_item.created_at) %> ago.
</span>
</li>
<% end %>