在控制器中扩展操作

时间:2011-04-02 14:21:55

标签: ruby-on-rails ruby methods extension-methods

我正在构建一个控制器,在多个操作中设置相同的变量。像这样:

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

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

我知道我可以调用一种方法来填写变量赋值,但我想知道如何用“最佳实践”的方式。我野心勃勃地试着......

def master 
  @a = 1
  @b = 2
end

def one < master
  @test = "One"
end

def two < master
  @test = "Two"
end

但这无济于事。 SO社区建议什么?

1 个答案:

答案 0 :(得分:4)

<用于Ruby中的继承,不能用于方法。在Rails中,您可以为此目的调用before_filter

before_filter :master

如果您想要控制器中的所有方法,或

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

如果您只想要这些方法。