Я новичок в рельсах, и я хочу знать, как получить отношения «один-к-одному». Я хочу получить город пользователей. В моей базе данных PostgreSQL У меня есть:howto call one-to-one отношения в рельсах
cities Table:
city:varchar
zipcode: integer
users Table
name:varchar
city_id:int
и в городе и модели пользователя у меня есть:
class City < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_one :city
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
Я попытался следующие в моем поиске контроллера, но не работал, при входе в систему:
current_user.city
Я получаю следующую ошибку
Processing by SearchController#index as HTML
Parameters: {"utf8"=>"✓", "q"=>"", "criteria"=>"1", "commit"=>"Search"}
User Load (1.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = 6 ORDER BY "users"."id" ASC LIMIT 1
PG::UndefinedColumn: ERROR: column cities.user_id does not exist
LINE 1: SELECT "cities".* FROM "cities" WHERE "cities"."user_id" =...
^
: SELECT "cities".* FROM "cities" WHERE "cities"."user_id" = $1 LIMIT 1
Completed 500 Internal Server Error in 11ms
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column cities.user_id does not exist
LINE 1: SELECT "cities".* FROM "cities" WHERE "cities"."user_id" =...
^
: SELECT "cities".* FROM "cities" WHERE "cities"."user_id" = $1 LIMIT 1):
Почему я полагаю, чтобы добавить столбец user_id в таблицу городов, когда у меня есть иностранный ключ городов в таблице пользователей? Я не хочу добавлять user_id в таблицу городов.
, потому что я только хочу, чтобы иметь почтовый индекс и город в таблице городов. Затем я хочу, чтобы активная запись приносила мне этот объект города для моего пользователя. –
[согласно руководствам по rails для has_one] (http://guides.rubyonrails.org/association_basics.html#the-has-one-association). Эта ассоциация указывает, что каждый экземпляр модели содержит или обладает одним экземпляром другой модели. «Итак, ваш пользователь имеет только один город? или вы имеете в виду многие из многих ассоциаций? ([где у многих пользователей может быть много городов?] (http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association)) i думаю, что вы ищете ['has_one: via Association'] (http://guides.rubyonrails.org/association_basics.html#the-has-one-through-association) –
yes 1 пользователь имеет 1 город, как вы можете видеть в моем картографировании –