在我的Case
模型(case.rb)中,我有几个after_create
回调。其中一个没有按预期运作。
我的意思是当我在控制台中运行它时,它可以工作,但是当通过HTTP请求在控制器中创建它时,它不会。
模型代码(问题是:create_case_users
无效):
after_create -> { redis_check(true) },
:create_case_users,
:create_manager,
:pusher_trigger
create_case_users
方法:
def create_case_users
cus = CaseUser.where(:case_id => self.id, :is_age => 1)
cus.each do |cu|
connections = Connection.where({ :cases => 1, :con_id => cu.user_id })
connections.each do |connection|
if connection.user_id && connection.connection_id
case_user = CaseUser.new
case_user.case_id = self.id
case_user.user_id = connection.user_id
case_user.email = connection.cases_emails
case_user.is_age = 0
case_user.cm = 0
case_user.save!
end
end
end
end
在我的应用的控制台中运行上述代码段时,指定要运行它的Case
,它可以正常运行创建我期望的记录。
当我发布到/ api / v1 / cases时,它会触发此控制器操作:
@case = Case.new(case_params)
@case.current_user(@current_user)
if @case.save
render :json => @case,
:root => "case",
:status => :created,
:location => @case,
:serializer => CaseShowSerializer,
:current => @current_user
else
render :json => @case.errors,
:status => :unprocessable_entity
end
可能是什么问题? create_case_users之后的after create回调运行并按预期运行,这意味着create_case_users
没有返回false。
编辑:
在控制台中运行Case.find(500).create_case_users
时,它可以正常工作。