繁体   English   中英

Ruby on Rails:has_one显示错误

[英]Ruby on Rails: has_one show error

我有一个has_one关联的问题。

在我的用户模型中,我定义了:

has_one :category

在user_form中是:

= f.select: category, options_for_select(Category.all.collect{|c|[c.name, c.id]}, @user.category), prompt: 'choose'

如果我想,但它在索引中显示:

user.category

我收到以下错误:

SQLite3::SQLException: no such column: categories.user_id: SELECT  "categories".* FROM "categories"  WHERE "categories"."user_id" = ?  ORDER BY "categories"."id" ASC LIMIT 1

不幸的是我不知道我的问题在哪里。 在此先感谢您的帮助。

您收到此错误是因为您将categories与具有has_one关系的users记录相关联,因此Rails期望categories表包含user_id外键列,该列不存在,如错误消息所示。

您应该生成将user_id列添加到categories表的迁移:

bundle exec rails generate migration add_user_id_to_categories user:references

并运行它:

bundle exec rake db:migrate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM