我的Rails 4应用程序中有三个表 - 一个用于游戏,类别和主题.这两个类别和主题有一列:name,而游戏包括像信息starts_at游戏开始时.
在我的PagesController中,我可以使用params值显示来自Game和Topic的数据find_by:
topic = Topic.find_by_name(params[:topic])
@games = Game.for_topic(topic).upcoming.order(:starts_at)
Run Code Online (Sandbox Code Playgroud)
这很好用.
奇怪的是,当我使用相同的推理但使用Category而不是Topic时,就像这样:
category = Category.find_by_name(params[:category])
@games = Game.for_category(category).upcoming.order(:starts_at)
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
undefined method `for_category'
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑,因为我肯定是在我的for_表达式中定义类别和使用它.我在思考中犯了错误吗?
额外
CreateCategories迁移
class CreateCategories < ActiveRecord::Migration
def change
create_table :categories do |t|
t.belongs_to :topic, index: true
t.string :name, :null => false
t.timestamps
end
end
end
Run Code Online (Sandbox Code Playgroud)
CreateTopics Migration
class CreateTopics < ActiveRecord::Migration
def change
create_table :topics do |t|
t.string :name, :null => false
t.timestamps
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |