9
- ユーザーは
- ユーザー
ポストを主演3分前を投稿しました私はこれを達成するためにpublic_activityの宝石を使用しています。
私の質問は、多軸性機能にincludes
を使用する方法があるかどうかです。次のように
私は、現在実行しているコードは次のとおりです。
#app/models/post.rb
class Post < ActiveRecord::Base
include PublicActivity::Common
attr_accessible :content, :visibility
validates_presence_of :content
belongs_to :postable, :polymorphic => true
has_many :stars
end
#app/models/star.rb
class Star < ActiveRecord::Base
include PublicActivity::Common
validate :duplicate_star
belongs_to :user
belongs_to :post
private
def duplicate_star
errors.add(:base, "Post already starred") if Star.exists?(:user_id => self.user, :post_id => self.post)
end
end
#app/controllers/users_controller.rb
class UsersController < ApplicationController
def index
@post = Post.new
@activities = PublicActivity::Activity.order("id desc").all.includes(:trackable, :owner)
end
end
追跡可能、ポストやスターになることができます。 私は両方を表示するためのレンダリング関数を持っています。
activity.trackable.post.content
だからこれは、複数のクエリでは、それはポストを見つけるたびに、結果: 問題は、私は{postcontentを}主演出力に{ユーザー}のような何かをしようとした場合、それをこのようにしています。 この問題/状況にはどのように対処しますか?
ありがとうございます。
追跡可能オブジェクトには、属性として:contentを持たない他のポリモープクラスタイプを含めることもできます。 – swaroopsm