0

定義したメソッドをコントローラーから呼び出そうとしてregistration_insert.rbいますが、次のエラーが発生し続けます。

RegistrationInsert:Class の未定義のメソッド「insert」

挿入メソッドを正しく呼び出すにはどうすればよいですか?

ファイル構造 (すべて /app の下)

-コントローラー

---------registrations_controller.rb

-登録

---------registration_insert.rb

registrations_controller.rb:

 def create
    @registration = Registration.new(registration_params)
    RegistrationInsert.insert(registration_params)


    respond_to do |format|
      if @registration.save
        format.html { redirect_to @registration, notice: 'Registration was successfully created.' }
        format.json { render :show, status: :created, location: @registration }
      else
        format.html { render :new }
        format.json { render json: @registration.errors, status: :unprocessable_entity }
      end
    end
  end

registration_insert.rb

module RegistrationInsert 
    def insert(registration)
        #method code
    end
end

編集:クラスをモジュールに変更すると、次のエラーが表示されます:

RegistrationInsert:Module の未定義メソッド「insert」

4

1 に答える 1

0

多分あなたはちょうど必要RegistrationInsert.new.insertですか?

PSRegistrationInsertモジュールではなく、クラスを作成することを検討してください。クラスは、サービス オブジェクトの実現に適しています。

PPS 必要に応じて、メソッドの前にRegistrationInsert.new追加します。self.

module RegistrationInsert 
  def self.insert(registration)
    #method code
  end
end
于 2015-06-29T04:44:28.400 に答える