Расширить действие в контроллере

Я строю контроллер, который устанавливает одинаковые переменные в нескольких действиях. Что-то вроде этого:

def one
  @a = 1
  @b=2
  @test = "One"
end

def two
  @a = 1
  @b = 2
  @test = "Two"
end

Я знаю, что мог бы вызвать метод для заполнения присваиваний переменных, но мне интересно, как можно это сделать, используя метод "Best Practice". Я стал честолюбивым и попробовал...

def master 
  @a = 1
  @b = 2
end

def one < master
  @test = "One"
end

def two < master
  @test = "Two"
end

Но это возникло безрезультатно. Что предлагает Сообщество?

1 ответ

Решение

< используется для наследования в Ruby и не может использоваться в методах. В Rails вы можете позвонить before_filter для этого.

before_filter :master

если вы хотите это для всех методов в контроллере, или

before_filter :master, :only => [:one, :two]

если вы хотите это только для этих методов.

Другие вопросы по тегам