我为一件小事而苦苦挣扎,我不知道该怎么做。我有用户和状态表。我想我应该添加 StatusList 表,它将保留所有可用的状态。用户将保留用户数据,但状态将保留当前用户状态。所以它可能看起来像:
Table User id, name, email
Table Status user_id, status_list_id
Table StatusList id, name
我在考虑这样的关联:
User
has_one :status
has_one :status_list, through: :status
Status
belongs_to :user
has_one :status_list
StatusList
belongs_to :status
但这并不像我预期的那样工作。我的意思是当我尝试这样做时:
@u = User.last
@u.status # => "id: 1"
@u.status.status_list # => No such column "status_lists"
但是当我检查 ActiveRecord::Base.connection.tables 我看到 ['users', 'statuses', 'status_lists']。所以我开始在谷歌寻找解决这个问题,但我找不到任何东西,所以我在这里问,这种关系应该是什么样子?如果我的想法很好,为什么不能像我预期的那样工作?
感谢您提供任何帮助我找到解决方案的提示。