在rails中创建自定义方法

问题描述:

我在试图找出解决这个问题的好方法。在rails中创建自定义方法

可以说我有一张表格,其中有帖子,标题和不同的状态ID。

在我的控制指标,我有:

@posts = Post.all 

然后在我的模型,我有:

def check_status(posts) 
    posts.each do |post| 
    # logic here 
    end 
end 

所以在我的控制,我有:

@posts.check_status(@posts) 

但我m加载索引时出现以下错误:

undefined method check_status for <ActiveRecord::Relation:> 

任何想法?

它应该是一个类的方法,用self.前缀:

def self.check_status(posts) 
    posts.each do |post| 
    # logic here 
    end 
end 

然后调用它像这样:

Post.check_status(@posts) 

-

你也可以做这样的事情:

def check_status 
    # post status checking, e.g.: 
    self.status == 'published' 
end 

然后你可以打个电话Post这样的例子:

@posts = Post.all 
@post.each do |post| 
    if post.check_status 
    # do something 
    end 
end