私は、ユーザーがテキストと画像を投稿できるシンプルなアプリを持っています。また、ユーザーが自分のお気に入りに投票できるように、thumbs_up gem (github repo)も使用しています。Arrayのための未定義のメソッドrank_tally(thumbs_up gemと投稿のランク付け)+
現在、テキストと画像の両方のアイテムを持つフィードを作成しようとしています。私は両方を1つの集約されたフィードにまとめ、注文し、ビューを動かすことができました。しかし、コントローラの@feedで "rank_tally"メソッドを使用すると、#Array: "0x1052befe8"エラーのために "未定義のメソッド` rank_tally 'が返されます。
rank_tallyは1つのモデルにのみ適用します(たとえば、@ aggregatedをposts.rank_tallyに変更した場合など)が、両方を組み合わせて作成している@集約された配列に問題があるようです。
私はこれをどのように修正することができますか?助けてくれてありがとう!
def feed
@user = User.find_by_cached_slug(params[:id])
posts = Post.where("poster = ? and (postername is not null or name != ?)", @user.id, 'Guest')
images = Image.where("poster = ? and (postername is not null or name != ?)", @user.id, 'Guest')
@aggregated = (posts + images).rank_tally(
{:at_least => 1,
:at_most => 10000,
:start_at => 1.weeks.ago,
:limit => 10,
})
@feed = @aggregated.paginate(:page => params[:page])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
あなたの答えに感謝!まだ動作していません:/私はimages.mergeに設定した場合、逆に、投稿のみが表示され、画像のみが表示されます – ahuang7