这个问题提出了类似的问题: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_id
和user_id
个字段。
非常感谢。
答案 0 :(得分:0)
你可能想看看
AR :: B#first_or_create
http://api.rubyonrails.org/classes/ActiveRecord/Relation.html#method-i-first_or_create
AR :: B#first_or_initialize http://api.rubyonrails.org/classes/ActiveRecord/Relation.html#method-i-first_or_initialize