gpt4 book ai didi

ruby-on-rails - has_many在Rails中进行关联迁移

转载 作者:行者123 更新时间:2023-12-04 07:28:33 26 4
gpt4 key购买 nike

我正在研究Rails项目(Rails版本4.2.3)。
我创建了UserTask模型,但在创建过程中没有包括它们之间的任何关联。
现在,我希望一个user具有许多tasks和一个task属于一个user

通过this thread中的rails g migration AddUserToTask user:belongs_to我能够在任务表中插入外来的user_id键。但是,如何添加has_many迁移?我更新了User模型:

class User < ActiveRecord::Base
has_many :customers
end

但我不确定如何编写迁移文件。到目前为止,我写道:
class addTasksToUser < ActiveRecords::Migration
def change
update_table :users do |t|
t.has_many :tasks
end
add_index :users, taks_id
end
end

但是 rake db:migrate没有执行任何操作。这是设置 has_many关系的正确方法吗?

最佳答案

在模型中设置关联:

class User < ActiveRecord::Base
has_many :tasks
end

class Task < ActiveRecord::Base
belongs_to :user
end

删除您显示的迁移文件。

添加对 tasks表的引用(假设您已经有 tasks表):
rails g migration add_references_to_tasks user:references

迁移数据库:
rake db:migrate

如果还没有 tasks表,请创建一个:
rails g migration create_tasks name due_date:datetime user:references # add any columns here

迁移数据库:
rake db:migrate

从现在开始,您的任务将具有 user_id属性。

关于ruby-on-rails - has_many在Rails中进行关联迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31450381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com