Как создать сервис rails для контроллеров с доступом к куки и сессиям - PullRequest
0 голосов
/ 15 октября 2019

Я хочу создать службу для СУШКИ моих контроллеров и сделать их более читабельными (и избегать использования проблем ), но это не обычная служба, потому что она сможет получитьи установить куки и записи сеанса. Как мне этого добиться?

Спасибо!

1 Ответ

1 голос
/ 15 октября 2019

Вы можете создать что-то вроде:

class FooService

  delegate *%w(
    session
    cookies
  ), to: :controller

  class << self 

    def call(args={})
      new(args).call
    end

  end # Class Methods

  #=====================================================================
  # Instance Methods      
  #=====================================================================

  def initialize(args)
    args.each do |k,v|
      class_eval do 
        attr_accessor k
      end
      send("#{k}=",v)
    end        
  end

  def call

  end

end

А затем из своего контроллера назовите его примерно так:

FooService.call controller: self, other: :args

При таком вызове вы будетеиметь методы controller и other в экземпляре FooService, которые содержат значения controller (тот, который вызвал службу) и :args, соответственно. У вас также будут методы session и cookies, которые являются сеансом и файлами cookie, которые хранятся в controller. Тогда вы можете делать с ними, как хотите.

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