Ассоциации MongoMapper + Rails не работают - PullRequest
0 голосов
/ 21 февраля 2012

Я хочу иметь ECardMatch, который связан с двумя пользователями, и иметь возможность создавать с помощью таких ассоциаций, как этот @user.ecard_matches.new и т. Д. *

Я могу сделать что-то вроде этого:

user = User.new
user.ecard_matches

Возвращает [] пустой массив

Но я не могу сделать

em = EcardMatch.new
user.ecard_matches << em

Ошибка:

NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.include?

или user.ecard_matches.new

Ошибка:

NoMethodError: undefined method `new' for []:Array

Возможно, что-то не так с моими ассоциациями в модели. Я новичок в рельсах и mongodb, так что, возможно, такое использование - плохая практика ...

Класс пользователя:

class User
  include MongoMapper::Document

  attr_accessor :password

  key :name, String
  key :perika, Integer
  key :digest_password, String

  many :ecard_matches
end

Класс EcardMatch:

class EcardMatch
  include MongoMapper::Document

  key :wager, Integer
  key :turn, Integer
  key :first_user_score, Integer
  key :second_user_score, Integer

  belongs_to :first_user, class_name: "User"
  belongs_to :second_user, class_name: "User"

end

1 Ответ

0 голосов
/ 21 февраля 2012
user = User.new 
user.ecard_matches << EcardMatch.new(:prop1=> '....', :prop1=> '....', ...)
user.ecard_matches << EcardMatch.new(:prop1=> '....', :prop2=> '....', ....)
user.save

Может ли этот пример быть полезным?

...