我是新來的導軌,我想知道如何獲取一對一的關係。我想取用戶城市。在我的PostgreSQL數據庫,我有:如何在導軌中調用一對一關係
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添加到城市表格中。
因爲我只希望它有在城市表中的郵政編碼和城市。然後我希望活動記錄爲我的用戶獲取這個城市對象 – 2014-12-07 15:12:26
[根據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:通過關聯]](http://guides.rubyonrails.org/association_basics.html#the-has-one-through-through-association) – 2014-12-07 15:21:22
是1用戶有1個城市,你可以在我的映射中看到 – 2014-12-07 15:24:16