find_or_create的最佳方法,但使用具有倍数潜力的ID

时间:2018-02-03 19:06:32

标签: ruby-on-rails ruby model controller

所以我的问题是,当只有一个紧急联系人时,以下代码片段工作正常。它会查找具有type_of'trustain'的ContactDetail,然后在没有的情况下创建它,如果有则更新它。如果有多个带有type_of“emergency”的ContactDetail,我该怎么做?理想情况下,我想通过ContactDetail模型的ID来更新它

  class Api::Practice::ClientsController < PracticeBaseController

    def update
      @user = User.find_by(id: params[:id])
        @user.update(user_params)

        emergency = @user.contact_details.find_or_create_by(type_of: 'emergency')
        emergency.update(emergency_contact_params)

        render json: @user, serializer: UserSerializer
    end

    private

    def emergency_contact_params
      params.fetch(:emergency_contact, {}).permit(:name,:phone,:email)
    end
  end

再次感谢你们!

0 个答案:

没有答案