0
我想为各种控制器添加一个状态问题,因为所有这些控制器共享相同的状态功能。Rails 4 Controller Concern初始化程序
状态可以是“活动”,“不活动”或“存档”。如果添加到特定的控制器前。 bars_controller这些方法应该是这样的:
def activate
@bar.activate!
redirect_to(:back)
end
def deactivate
@bar.deactivate!
redirect_to(:back)
end
def archive
@bar.archive!
redirect_to(:back)
end
我提出上面我所关注的被称为Foo和我在我的控制器,这样包括富:搬家时
include Foo
我有问题这些方法令人担忧,是Model实例未定义。
如何概括我关心的代码中的“@bar”部分?这将使我能够使用包括Baz在内的多个模型实例的关注。我试过使用“self”,但是引用了Controller实例而不是Model实例。
如果我理解这一点没错,你将需要初始化这个@bar某处。由于您在许多控制器中使用它,因此在应用程序控制器中执 – 2015-04-03 12:24:10
您的'@ bar'定义在哪里?你应该有一个像'def find_bar @bar = Bar.find(params [:id]);结束'某处。 – pierallard 2015-04-03 12:53:47
@ForgetTheNorm,“bar”在“before_action”中定义。如果它在一个特定的控制器本身,那么“bar”不是问题。当我将这些方法转移到更普遍的问题时,会出现问题。我不能称之为“酒吧”,因为我需要将“关注”用于“巴兹”。 – Herm 2015-04-03 13:17:50