2013-05-17 27 views
0

我定义这个方法在我的跟踪模型传递模型方法的输出到它的控制器

def random_number 
    max = Article.maximum(:id) 
    id = rand(1..max) 
    return id 
end 

,我试图把它传递给轨道控制,以使其他类像轨道控制器的索引视图对象所以:

def index 
    @tracks = Track.all 
    id = Track.random_number 
    @random = Article.find_by_id(id) 
end 

但仍然得到一个NoMethodError“未定义的方法`random_number'为#”。

关于如何正确渲染的技巧?

谢谢!

+0

'random_number'可以被重构为一行:'rand 1..Article.maximum(:id)' – Substantial

+0

伟大的技巧谢谢! –

回答

3

你称之为它是一种类方法。将self添加到您最好去的方法中。

def self.random_number 

现在,您只能使用Track类的实例访问方法。

@track = Track.new 
@track.random_number 
相关问题