PublicActivity gem を使用してニュース フィードを作成しています。すでに正常に稼働していますが、アクティビティを別のテーブルに関連付けて詳細を表示したい
現在、私のニュース フィードには、誰かが投稿したときに「マイクロポストを投稿しました」としか表示されません。投稿されたマイクロポストをニュース フィードに表示したいのです。アクティビティがマイクロポスト テーブルを参照してマイクロポストを取得するように、gem ファイルを編集して関連付けを含めました。
module PublicActivity
module ORM
module ActiveRecord
# The ActiveRecord model containing
# details about recorded activity.
class Activity < ::ActiveRecord::Base
include Renderable
belongs_to :trackable, :polymorphic => true
belongs_to :owner, :polymorphic => true
belongs_to :recipient, :polymorphic => true
serialize :parameters, Hash
# I added this
has_one :micropost, foreign_key: "id", primary_key: "trackable_id"
end
end
end
end
これはトリックを行うようで、ユーザーが投稿したマイクロポストを示していますが、gem を編集せずにこれを行いたいと考えています。私はサルにパッチを当てるさまざまな方法を試しましたが、それを理解できないようです。誰かが私を助けることができますか?
前もって感謝します
これが私のコードの一部です
コントローラ
class ActivitiesController < ApplicationController
def index
@activities = PublicActivity::Activity.order("created_at desc").where(owner_id: [current_user.followed_user_ids, current_user], owner_type: "User")
end
end
見る
<h1>Activities</h1>
<% @activities.each do |activity| if activity.trackable %>
<div class="activity">
<%= render_activity activity %>
</div>
<% end %>
<% end %>
マイクロポスト活動
<% if activity.trackable %>
<%= link_to gravatar_for(activity.owner), activity.owner %>
<span class="user">
<%= link_to activity.owner.name, activity.owner %>
</span>
<span class="content">
Created a Micropost
# <%= activity.micropost.content %> COMMENTED OUT WHILE NOT WORKING
</span>
<span class="timestamp">
<%= time_ago_in_words(activity.created_at) %> ago.
</span>
<% end %>
編集
また、Gem を作者の GitHub から最新のものに更新すると、Gem を編集しても機能しません。このため、私は彼の宝石からフォークしてクローンすることができませんでした