我有一个控制器。在控制器中我有两种方法。我想要一个变量,其值在方法1中设置为可以在方法2中访问。我可以使用实例变量来实现这个吗?
答案 0 :(得分:4)
是的,只要一件事发生在一个请求中,就可以使用实例变量。
这样的事情:
class PancakesController < ApplicationController
def where_is
@house = Pancake.find(params[:id])
render :json => mangle, :status => :ok
end
private
def mangle
@house
end
end
将按预期工作。但是,这种事情:
class PancakesController < ApplicationController
def where_is
@house = Pancake.find(params[:id])
#...
end
def mangle
if(@house)
#...
end
#...
end
end
如果在差异请求中调用where_is
和mangle
,将无效。
请记住,控制器实例的生命周期是单个请求。
答案 1 :(得分:0)
是的,您可以使用实例变量来实现这一点。