我在rails中创建了2个模型并修改了模型类以添加多对多关系(使用has_and_belongs_to_many
)
class User < ActiveRecord::Base
has_and_belongs_to_many :categories
end
class Category < ActiveRecord::Base
has_and_belongs_to_many :users
end
当我通过网络界面创建用户时,我不会被要求选择某些类别。
我错过了什么吗?我读到另一个表是必需的,但它是has_many
而不是has_and_belongs_to_many
语句的。)
你能帮忙吗?
我认为这是一个新问题,但......
非常感谢,
此致
吕克
答案 0 :(得分:3)
对于HABTM,您需要一个名为categories_users的连接表。使用此迁移:
def self.up
create_table :categories_users, :id => false do |t|
t.integer :category_id
t.integer :user_id
end
end
答案 1 :(得分:0)
您的观点是什么样的? Rails的脚手架不会占多对多,所以你需要自己处理它。
您的数据存储是什么样的?如果您使用的是RDBMS,那么对于多对多关系,您通常需要一个联结表。大多数(所有?)SQL数据库自然不会处理多对多。