Rails 4

时间:2016-05-09 20:58:38

标签: ruby-on-rails ruby-on-rails-4 nested-attributes

我使用了这3个模型的多种模式

class User < ActiveRecord::Base
  has_many :user_topics
  has_many :topics, through: :user_topics
end

class Topic < ActiveRecord::Base
  validates_presence_of :name
  validates :name, :uniqueness => true
end

class UserTopic < ActiveRecord::Base
  belongs_to :user
  belongs_to :topic
  accepts_nested_attributes_for :topic
end

目前,每次创建新的user_topic时都会尝试创建新的主题模型。我只想在主题名称不存在的情况下创建新的主题模型,否则,如果确实存在,则使用现有的topic_id。

类似于:

class UserTopic < ActiveRecord::Base
  belongs_to :user
  belongs_to :topic
  accepts_nested_attributes_for :topic, :first_or_create(:name)
end

是否可以做类似的事情?

0 个答案:

没有答案