Как добавить обратный вызов 'after_create' в контроллере, который находится в модуле? - PullRequest
0 голосов
/ 30 апреля 2020

Предположим, у меня есть контроллер типа

module Module
  class UsersController < ApplicationController
    before_action :set_user, only: %i[show]
    after_create :somemethod

   private

    def set_user
      @user = User.find(params[:id])
    end
  end
end

#Model
class User < ApplicationRecord

end

Так что, когда я пишу так, set_user не работает, я имею в виду, что он не создает пользовательский объект. Можете ли вы помочь мне за то же самое. Заранее спасибо.

1 Ответ

2 голосов
/ 30 апреля 2020

В контроллере нет after_create. Вы можете вызвать after_action или before_action в качестве фильтра, чтобы обернуть вокруг методов контроллера: https://guides.rubyonrails.org/action_controller_overview.html#filters

См .:

module Module
  class UsersController < ApplicationController
    after_action :somemethod

    def show
    end

    private

    def somemethod
      puts "This will work"
    end
  end
end

after_create или любой Функция обратного вызова update / create / commit доступна только для моделей: https://guides.rubyonrails.org/active_record_callbacks.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...