0
我在我的Rails三個表4的應用程序 - 一個用於遊戲,類別和主題。無論類別和主題有一個列:name
,而遊戲包括像starts_at
一個遊戲開始時的信息。在PagesController幾乎相同的方法產生一個未定義的方法錯誤軌道4,5
在我PagesController,我可以用find_by
與PARAMS值顯示來自遊戲和主題數據:
topic = Topic.find_by_name(params[:topic])
@games = Game.for_topic(topic).upcoming.order(:starts_at)
這工作得很好。
有什麼奇怪的是,當我使用同樣的道理,但與類別而不是主題,就像這樣:
category = Category.find_by_name(params[:category])
@games = Game.for_category(category).upcoming.order(:starts_at)
我收到一條錯誤消息:
undefined method `for_category'
這是讓我感到困惑,因爲我絕對定義了類別,並在我的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
CreateTopics遷移
class CreateTopics < ActiveRecord::Migration
def change
create_table :topics do |t|
t.string :name, :null => false
t.timestamps
end
end
end
你在說什麼「'for_'表達式」?是否有一種針對作用域的'method_missing'定義的方法?你可以發佈它的定義嗎? – BoraMa
你的'遊戲'模型源代碼是怎麼樣的? –