Это очень простая задача, но я не могу найти причину проблемы на всю жизнь.
Я делаю основные списки дел, привязанные к учетным записям пользователей.Я использую Волшебство, чтобы помочь с аутентификацией пользователя и созданием, которое, кажется, работает отлично.
Проблема в следующем:
Когда я пытаюсь вызвать `@ user.list 'любым способом, я получаю следующее исключение (это копируется изконсоль rails):
@user = User.where(:email => "me@gmail.com")
=> [#<User id: 1, email: "me@gmail.com", crypted_password: "$2a$10$tiLFyiuLGSB.UXElEdaTGerSv6/TZoLL4nVFdCNsv1AW...", salt: "e6275124385b0ea157875bba281c7ae9e3a9858e", created_at: "2011-10-02 05:59:02", updated_at: "2011-10-02 05:59:02", remember_me_token: nil, remember_me_token_expires_at: nil>]
@user.lists
NoMethodError: undefined method `lists' for #<ActiveRecord::Relation:0x007f8b6ca89748>
from /Users/<myaccount>/.rvm/gems/ruby-1.9.2-p290@rails3.1/gems/activerecord- 3.1.0/lib/active_record/relation.rb:459:in `method_missing'
from (irb):4
from /Users/<myaccount>/.rvm/gems/ruby-1.9.2-p290@rails3.1/gems/railties-3.1.0/lib/rails/commands/console.rb:45:in `start'
from /Users/<myaccount>/.rvm/gems/ruby-1.9.2-p290@rails3.1/gems/railties-3.1.0/lib/rails/commands/console.rb:8:in `start'
from /Users/<myaccount>/.rvm/gems/ruby-1.9.2-p290@rails3.1/gems/railties-3.1.0/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
My Code / DB Setup
Настройка проста - у меня есть модель User
и модель List
.List
:belongs_to :user
и User
has_many :lists
.Я добавил user_id
в таблицу lists
со следующей миграцией:
class AddUserIdForeignKeyToLists < ActiveRecord::Migration
def change
add_column :lists, :user_id, :integer
end
end
Я подтвердил, что поле user_id
существует в моей таблице (MySQL).
Моя User
модель:
class User < ActiveRecord::Base
has_many :lists
authenticates_with_sorcery!
attr_accessible :email, :password, :password_confirmation
validates_confirmation_of :password
validates_presence_of :password, :on => :create
validates_presence_of :email
validates_uniqueness_of :email
end
... и моя List
модель выглядит следующим образом:
class List < ActiveRecord::Base
belongs_to :user
end
Представление дизайна таблицы из MySQL выглядит следующим образом:
users
:
lists
:
Мне кажется, что может быть проблема в отношениях, но яне могу соединить это.У кого-нибудь есть понимание?Я никогда не сталкивался с какими-либо проблемами, такими как запуск Rails 3.0.X на машине с Linux, но это мой первый набег в Rails 3.1 на OSX, так что я не уверен, что, возможно, я пропустил основное изменение?
Спасибо за любые рекомендации