在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