从控制器传递对象到视图然后到其他控制器方法

时间:2013-11-07 19:27:43

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

在我的控制器中我有:

的TestController

def show_result

  @myObject = Object.where(.....)
end

def export_result
  .....
end

如何使用相同的对象@myObject从视图中调用“export_result”方法,而不再执行相同的查询?

1 个答案:

答案 0 :(得分:0)

我认为你必须先了解实例变量。 实例变量在其对象被销毁时被销毁。 总之,@ myObject变量可用于每个操作(请求)。

答案: 1.使用回调 你可以用一个简单的方法来准备渲染并调用它。

    before_filter :load_object, only: [:show_result, :export_result]

    def load_object
      @myObject = Object.where(...)
    end
  1. 在export_result中调用show_result方法 如果show_result有渲染代码或其他一些不会在export_result方法中使用的代码,这是不正确的方法。