Как правильно получить доступ к свойствам модели own_to - PullRequest
1 голос
/ 16 января 2012

Использование следующих классов и их ассоциаций.

class Repository
  include DataMapper::Resource
  property :id, Serial
  property :name, String
  has n, :branches
end

class Branch
  include DataMapper::Resource
  property :id, Serial
  property :note, String
  belongs_to :repository
end

# Simple creation of a repository and branch belonging to said repository
repo = Repository.new
repo.name = "Bob"
branch = repo.branches.new
branch.note = "Example Note"
repo.save

# Print the repo->branch's note
puts repo.branches.first.note  # Prints "Example Note"

# Print the branch->repo name
puts branch.repository.first.name  # Does not work
puts branch.repository.name  # Does not work

Я могу получить доступ к свойствам из Репозиторий (например: Repository.first.branches.first.note).

Я не могу получить доступ к свойствам из Branch , получая имя хранилища из ветви (например: Branch.first.repository.first.name).


** решено ** Оказывается, я не могу использовать Repository в качестве имени моего класса, поскольку DataMapper уже использует его (API) . Решение состоит в том, чтобы просто переименовать мой класс, и тогда все будет работать как задумано.

1 Ответ

2 голосов
/ 16 января 2012

Нельзя использовать имя класса Репозиторий , поскольку DataMapper уже использует его (API) .Решение состоит в том, чтобы просто переименовать класс, и тогда все будет работать как задумано.

...