我只是想寻求一些澄清来访问其类中的实例变量(如果这是非常基本的道歉)。
我的例子是我有一个配方控制器,在其中我有很多动作,但特别是我有一个INDEX和一个SHOW动作
def index
@q = Recipe.search(params[:q])
@q.build_condition
end
@q根据通过我的搜索表单传递的参数搜索我的食谱模型
我想在不同的页面上显示结果(稍后会查看AJAX选项),所以在我的SHOW操作中我可以这样做
def show
@searchresults = @q.result(:distinct => true)
end
我认为这是有效的,但如果不是我在某个地方出错了。任何人都可以建议或提供一些建设性的建议吗?
谢谢
答案 0 :(得分:3)
您的对象或类应具有以下方法:
@foo.instance_variables
- 这将列出@foo
@foo.instance_variable_get
- 这将获取@foo
的实例变量的值
@foo.instance_variable_get("@bar")
- 这将为@bar
@foo
的实例变量的值
答案 1 :(得分:1)
不,你不能像这样使用实例变量,因为它们都有不同的动作,并且会被调用不同的请求。
然而,以下工作
def index
@q = Recipe.search(params[:q])
@q.build_condition
show
end
def show
#Following line will work as we are calling this method in index
#and so we can use instance variable of index method in the show methos
@searchresults = @q.result(:distinct => true)
end