0

私のcircuit.rbクラスには次のものがあります

class Circuit < ActiveRecord::Base

  after_create :create_service

  def create_service
    # create service record
    service = Service.new :service_type => 'Circuit', :child_id => self.id, :organisation_id => self.organisation_id
  end

が作成されたときにコールバックを起動したいだけです。circuit同様に試しましbefore_validationたが、ログにエラーはありません。実際、servicesテーブルが触れられているという言及はありません。予防措置としてサーバーも再起動しましたが、そうではありませんserviceインスタンスが保存されていない理由を確認してください。

完全を期すために:

class CircuitController < ApplicationController
  def update
    ...
    if request.post?
      if @circuit
        # update
      else
        # attempt create
        @circuit = Circuit.new params[:circuit]
        if @circuit.save
          redirect_to :action => 'update', :id => @circuit.id
        end
      end
    end
  end
end

また、テーブル内のすべての列は を許可しますが、いずれにせよ である列をNULL除いて、データベース側にはレコードの保存を妨げるものは何もありません。同様に、モデルには検証がなく、適切に保存されます。idAUTO_INCREMENTcircuit

4

1 に答える 1