实例变量用法

时间:2011-08-19 03:24:20

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个控制器。在控制器中我有两种方法。我想要一个变量,其值在方法1中设置为可以在方法2中访问。我可以使用实例变量来实现这个吗?

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_ismangle

将无效。

请记住,控制器实例的生命周期是单个请求。

答案 1 :(得分:0)

是的,您可以使用实例变量来实现这一点。