我有一个名为" Post"的轨道模型,它代表用户在网站上的帖子。
每个"发布"有一个名为"得分"它会计算视图并计算得分。分数不存储在数据库中,它只是一种方法:
class Post < ActiveRecord::Base
has_many :votes
def score
self.votes * 2
end
# This should return an object with all the posts, ordered by score.
def get_all_posts_sorted_by_rank
...
end
Rails控制台出错:
2.0.0-p451 :001 > Post.get_all_posts_sorted_by_rank
NoMethodError: undefined method `get_all_posts_sorted_by_rank' for Post (call 'Post.connection' to establish a connection):Class
答案 0 :(得分:2)
如果您希望它是一个类方法,您应该使用:
def self.get_all_posts_sorted_by_rank
...
end
这可能就是你想要的。
否则,如果你想要一个实例方法,你应该按照自己的方式使用,但是你必须先实例化你的对象:
@post = Post.new #or find(params[:id]) or some other way
@post.get_all_posts_sorted_by_rank #use it
但第一种情况似乎更有可能。