Назначение полиморфной модели acts_as_mappable в консоли Rails - PullRequest
1 голос
/ 11 февраля 2011

У меня есть полиморфная модель местоположения:

class Location < ActiveRecord::Base
  acts_as_mappable
  before_validation :geocode_address, :on => :create
  belongs_to :locatable, :polymorphic => true
end 

и модель пользователя, которая ссылается на нее:

class User < ActiveRecord::Base
  acts_as_mappable :through => :location
  has_one :location, :as => :locatable
end 

Как правильно назначить местоположение пользователю вРельсы консольные?При попытке выполнить следующее я получаю сообщение об ошибке:

l = Location.create(:full_address=>'123 maple street, chicago, il')
u = User.create(:username=>'foo') # => ArgumentError: You gave location in :through, but I could not find it on User.

У меня нет возможности назначить местоположение пользователю.

Если я удаляю 'acts_as_mappable: through =>: инструкция местоположения, я могу назначить местоположение без проблем:

l = Location.create(:full_address=>'123 maple street, chicago, il')
u = User.create(:username=>'foo')
u.location = l

1 Ответ

1 голос
/ 11 февраля 2011

Определение: местоположение должно предшествовать его использованию:

class User < ActiveRecord::Base
  has_one :location, :as => :locatable
  acts_as_mappable :through => :location
end 
...