私はブロガーと呼ばれるコントローラがあります。未定義方法 - レール
class BloggerController < ApplicationController
def home
end
def favoritePosts
@blogger = current_blogger
@favorites = @blogger.favorite_posts
end
def suggestedPosts
posts = Post.all
@suggestedPosts = posts.similar_posts
end
end
をやBloggerモデルで、私は方法があります:私はそのは私にエラーを与えるサーバーを実行すると
def similar_posts
title_keywords = Post.body.split(' ')
Post.all.sort do |post1, post2|
post1_title_intersection = post2.body.split(' ') & title_keywords
post2_title_intersection = post2.body.split(' ') & title_keywords
post2_title_intersection.length <=> post1_title_intersection.length
end
end
を:
undefined method `similar_posts' for #<Post::ActiveRecord_Relation:0x007fa365029760>
stackoverflowの上で検索した後、私はdef self.similar_posts
を試してみましたが、それはまだ同じエラーメッセージを表示します。私はまた@suggestedPosts = posts.new.similar_posts
のようなコントローラでnew
を試してみましたが、それでも私は同じエラーが出ます。 これを克服する方法の提案はありますか?
問題は、投稿にBlogger.Methodを使用していることです。投稿にそのようなメソッドはありません。 Postで定義してください – Boltz0r
'similar_posts'が' posts'オブジェクトで定義されていて 'posts'に定義されていないので、' @suggestedDevelopers = posts.map(&:similar_posts) ' –
で' similar_posts'メソッドを呼び出そうとしています。オブジェクトの配列'posts.first.similar_posts'を試してください –