[英]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.