HABTM filter_or_create用法

时间:2013-06-22 16:53:45

标签: ruby-on-rails ruby-on-rails-3

这个问题提出了类似的问题:Rails: Has and belongs to many (HABTM) -- create association without creating other records但我是Rails的新手并将其应用于我的问题。

我可以轻松地创建一个新的Location和“用户和位置”之间的新关联:

@location = Location.new(params[:location].merge(:user_ids => current_user.id))

我如何改变这一点:

  • 如果Location不存在,则会创建新的Location和关联
  • 如果Location已存在
  • ,则会创建新关联

我的模特是这样的:

Location

class Location < ActiveRecord::Base
    attr_accessible :name, :user_ids
    has_and_belongs_to_many :users
end

User

class User < ActiveRecord::Base
  attr_accessible :email, :password, :password_confirmation, :remember_me
  has_and_belongs_to_many :locations
end

所以我想知道如何创建一个关联以及如何检查我是否应该创建一个关联。

我的关联表只有location_iduser_id个字段。

非常感谢。