创建后Rails没有按预期运行

时间:2015-05-26 16:18:15

标签: ruby-on-rails

在我的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时,它可以正常工作。

0 个答案:

没有答案