这是一个非常noob的问题,我从Rails开始。我有一个类用户,有很多费率,每个费率属于一个用户。
评级等级
class Rate < ActiveRecord::Base
belongs_to :user
end
用户类
class User < ActiveRecord::Base
include Authenticable
has_many :rates
validates :username, uniqueness: true, allow_blank: true, allow_nil: true
差饷迁移
class CreateRates < ActiveRecord::Migration
def change
create_table :rates do |t|
t.string :points
t.timestamps null: false
end
end
end
用户迁移
class DeviseCreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
## Database authenticatable
t.string :email, null: true, default: ""
t.string :encrypted_password, null: false, default: ""
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Trackable
t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.inet :current_sign_in_ip
t.inet :last_sign_in_ip
t.string :authentication_token, default: ""
## User attributes
t.string :username, default: ""
t.timestamps
end
add_index :users, :email, unique: true
add_index :users, :reset_password_token, unique: true
add_index :users, :authentication_token, unique: true
end
end
当我创建数据库并运行rake db:migrate时,所有实体都已迁移,但表速率没有user_id
答案 0 :(得分:1)
您需要将user_id列添加到费率表
答案 1 :(得分:0)
很难说没有看到迁移文件本身,但您可以使用迁移中的add_reference
函数添加对表的引用:
class AddUserIdToRate < ActiveRecord::Migration
def change
unless column_exists? :rates, :user_id
add_reference :rates, :user, index: true
end
end
end
如果您收到错误,请在此处发布,我们希望能够提供更多信息。
修改强>
您的迁移中没有任何内容涉及在user_id
表格中创建rates
列。使用上述代码添加迁移应添加user_id
外键。