Ruby on rails 有一个没有更新属性id吗?

Ruby on rails 有一个没有更新属性id吗?,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,因此,我有一个数据库关系,其中用户有一个首选项列表。我已经在数据库表中设置了一个首选项列表id,并且我已经与首选项列表建立了归属于:用户关系,与用户建立了一个:首选项列表关系 这是奇怪的部分。如果我做了user.preference\u list=preference\u list,我可以访问user.preference\u list,它将为我提供正确的preference\u list实例。但是,如果我使用user.preference\u list\u id(一个有效的列,我已选中),即使

因此,我有一个数据库关系,其中用户有一个首选项列表。我已经在数据库表中设置了一个首选项列表id,并且我已经与首选项列表建立了
归属于:用户
关系,
与用户建立了一个:首选项列表
关系


这是奇怪的部分。如果我做了
user.preference\u list=preference\u list
,我可以访问user.preference\u list,它将为我提供正确的preference\u list实例。但是,如果我使用user.preference\u list\u id(一个有效的列,我已选中),即使在我将preference\u list添加到user.preference\u list之后,它也不会给我任何信息。我需要为各种数据库操作更新id。我做错了什么

外键位于表上,用于声明所属关联的类。所以如果你有

class PreferenceList < ActiveRecord::Base
  belongs_to :user
end

class User < ActiveRecord::Base
  has_one :preference_list
end
类首选项列表

preferences\u列表
应该有
user\u id
列。Rails将正确处理这些列。您还可以将
preference\u list\u id
列添加到
users
表中。但此列没有特殊意义,Rails默认情况下不会对其进行任何处理。如果您确实需要操作
首选项列表\u id
,请尝试更改“属于/拥有”一侧。或者使用
user.preference\u list.id

添加首选项列表后是否保存用户?是。我已尝试调用user.save和user.reload,但均无效。请查看日志。它应该显示正在保存的关联对象,除非出现某种验证失败?