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

в моей папке политик у меня есть product_policy.rb

class ProductPolicy < ApplicationPolicy
  def update?
    creator? || admin?
  end

  alias create? update?

  def manage?
    creator?
  end

  def destroy?
    update?
  end

  def color?
    update?
  end

  etc.etc.

Как вы можете видеть, он использовал псевдоним, чтобы избежать добавления также

  def create?
    update?
  end

Но есть несколько строк.уничтожить?а цвет?это сделало то же самое.Я пытался редактировать псевдоним таким образом

создать псевдоним?уничтожить?цвет?обновить?

но это не работает.

Как оптимизировать этот псевдоним?

1 Ответ

0 голосов
/ 28 сентября 2019

Существуют некоторые тонкие различия с областью видимости при использовании alias и alias_method, но в этом случае вряд ли что-то изменится, поэтому вы можете просто перебрать методы, для которых вы хотите создать псевдоним:

class ProductPolicy < ApplicationPolicy
  def update?
    creator? || admin?
  end

  %i(create? destroy? color?).each do |method|
    alias_method method, :update?
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...