通过HABTM创建关联记录

时间:2013-07-23 20:45:45

标签: ruby-on-rails ruby-on-rails-3 has-and-belongs-to-many

型号:

cities.rb:

has_many :cities_users
has_many :users, :through => :cities_users

我在citiesusers之间有一个HABTM(直通)。我想查看与用户关联的所有城市。这就是我所拥有的以及错误是什么:

users.rb的

has_many :cities_users
has_many :cities, :through => :cities_users

控制器:

@user = User.find(current_user.id)
@users_cities = @user.cities

我编写了一个创建JOIN表的迁移:

create_table "cities_users", :id => false, :force => true do |t|
   t.integer "user_id"
   t.integer "city_id"
end

这是我的错误(与第二行控制器代码有关):

uninitialized constant User::CitiesUser

我遇到类似的问题创建与用户相关联的城市。

非常感谢。

1 个答案:

答案 0 :(得分:0)

如果要使用has_many :through关联,则应创建新模型 请考虑使用has_and_belongs_to_many进行直接的多对多连接而不使用中间模型。

有关详情,请阅读http://guides.rubyonrails.org/association_basics.html#choosing-between-has-many-through-and-has-and-belongs-to-many