加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 未知属性:user_id

发布时间:2020-12-16 22:12:31 所属栏目:百科 来源:网络整理
导读:我得到的错误未知属性:user_id执行current_user.stories.build class User ActiveRecord::Base has_many :stories,class_name: 'Story',foreign_key: 'user_id',dependent: :destroy ...class Story ActiveRecord::Base belongs_to :user,class_name: 'User
我得到的错误未知属性:user_id执行current_user.stories.build
class User < ActiveRecord::Base
  has_many :stories,class_name: 'Story',foreign_key: 'user_id',dependent: :destroy
  ...

class Story < ActiveRecord::Base
  belongs_to :user,class_name: 'User',foreign_key: 'user_id'
  ...

schema.rb

create_table "stories",:force => true do |t|
    t.string   "responsible"
    t.string   "descr"
    t.string   "state"
    t.datetime "created_at",:null => false
    t.datetime "updated_at",:null => false
  end

  create_table "users",:force => true do |t|
    t.string   "email"
    t.string   "password_digest"
    t.datetime "created_at",:null => false
    t.string   "name"
  end

它不包含’user_id’字段.有任何想法吗?

解决方法

Kulbir是正确的,您需要在故事表中定义一个user_id列,但不能解释这样做.

进行此更改的正确方法是创建新的迁移.按照惯例,它应该被称为add_user_id_to_stories,并且将被创建如下(假设你使用Rails 3):

rails generate migration add_user_id_to_stories

如果你运行它,它应该实际上生成一个已经包含你需要改变的迁移,这应该是这样的:

add_column :stories,:user_id,:integer

除此之外,当您遵循关于关联命名的Rails约定,您可以跳过很多额外的规范.在用户模型中,您可以仅指定has_many:故事,并在Story模型中指定belongs_to:user. Rails将承担与您指定的相同的类名和外键.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读