我有一个游戏模型和一个GamesController。这些代表了一系列体育赛事。然后我有一个短语模型,它只是一组随机短语。短语不属于任何游戏,游戏也没有任何短语。但是,我确实想在Games#index中显示一个随机短语。
我以为我会在Game模型上使用类方法来引入短语:
class Game < ActiveRecord::Base
def self.pull_phrase
Phrase.all.shuffle.limit(1)
end
end
然后在GamesController
我有:
class GamesController < ApplicationController
def index
@games = Game.all
@next_games = Game.where(["date > ?", Time.now]).all
@schedule = @next_games[0..4]
end
def phrases
@phrase = Game.pull_phrase
end
end
然后在我看来,我只想输出@phrase
我没有收到任何错误,但看起来我没有任何错误。
谢谢!
答案 0 :(得分:2)
我认为您需要在索引操作中设置变量@phrase
。在@phrase=Game.pull_phrase
内拨打GamesController#index
。
def index
@games = Game.all
@next_games = Game.where(["date > ?", Time.now]).all
@schedule = @next_games[0..4]
@phrase = Game.pull_phrase
##Alternative
@phrase = Phrase.all.sample
end
class Game < ActiveRecord::Base
def self.pull_phrase
Phrase.all.sample
end
end
注意您甚至不需要声明Game#pull_phrase
类功能,因为这种情况非常简单(参见替代方案)