Расширить действие в контроллере - PullRequest
1 голос
/ 02 апреля 2011

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

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

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

1 Ответ

4 голосов
/ 02 апреля 2011

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

before_filter :master

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

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

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

...