Rails迁移添加一个列并将其引用到另一个模型

时间:2015-03-08 14:48:45

标签: ruby-on-rails migration

mysql> desc Tab_A; +-----------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(255) | YES | | NULL | | | Tab_B_id | int(11) | YES | MUL | NULL | | | created_at | datetime | NO | | NULL | | | updated_at | datetime | NO | | NULL | |

通过上述架构,我可以Tab_A.first.tab_b获取相应的Tab_B详细信息。

将列option_A添加到表Tab_A并将该列引用到模型Tab_C

迁移更改已更新为 - >

add_reference :Tab_A, :option_a, references: :Tab_C

我得到了一个列option_a_id,它引用了表Tab_C的ID。

但是, 在动作中 - > Tab_A.first.tab_c出错,我只能访问Tab_A.first.tab_c_id

我知道我做错了什么,很重要。不知道在哪里。

2 个答案:

答案 0 :(得分:0)

好像您忘了在belongs_to模型中将Tab_C关联添加到Tab_A。你应该使用这样的东西:

class TabA < ActiveRecord::Base
  ...
  belongs_to :tab_c
  ...
检查它。

答案 1 :(得分:0)

您需要在模型中使用这些associations

class TabA < ActiveRecord::Base
  belongs_to :tab_c

class TabC < ActiveRecord::Base
  has_many :tab_a