【发布时间】:2014-04-23 16:23:48
【问题描述】:
下面是我的评论控制器的创建功能。基本上我遇到的问题是,如果一个场地是空白的,而艺术家不是,那么仍然会创建一个艺术家对象而不会创建一个音乐会对象。演唱会创建失败,如何防止创建艺人?如果这不可行,如何在演唱会创建失败后立即删除艺人?
def create
date_string = "#{review_params['date(1i)']}-#{review_params['date(2i)']}-#{review_params['date(3i)']}"
artist_string = review_params[:artist].titleize
venue_string = review_params[:venue].titleize
@concert = Concert.find_or_create_by!(artist: Artist.find_or_create_by!(name: artist_string), venue: venue_string, date: date_string)
@review = @concert.reviews.create(review_params)
@review.user_id = session[:user_id]
end
艺术家 has_many :音乐会
音乐会属于艺术家
音乐会有_很多评论
我需要强制一位艺人至少举办一场音乐会。
【问题讨论】:
-
ActiveRecord::Base.transaction 如果 db 配备事务,则运行良好。
-
你能详细说明@KNaito
标签: ruby-on-rails-4 has-many controllers database-relations