0

这个问题问了一个类似的问题:Rails: Has and belongs to many (HABTM) -- 创建关联而不创建其他记录,但我是 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字段。

非常感谢。

4

1 回答 1

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

于 2013-06-22T21:27:00.233 回答