从视图中访问另一个动作实例变量

时间:2013-10-16 17:44:28

标签: javascript ruby-on-rails ruby ajax instance-variables

假设我有一个View home.html.erb和以下控制器:

class StaticController < ApplicationController
  def home
    @people = Person.all
  end

  def filter
    @people = ....
  end

  def contact
  end
end

现在,当页面加载时,我可以使用@people轻松访问这些人。问题是当我想从我的home view过滤那些我称为ajax操作的人并触发filter操作并设置新的@people变量时。

在我的视图中,仍然存在旧的人而非新的价值观。当我更改变量名称并将其设置为:

  def filter
    @people2 = ....
  end

当我尝试在View中迭代@people2时收到错误消息。它说@people2为空。那么,我的问题是如何从我的View中访问该变量?

谢谢。

1 个答案:

答案 0 :(得分:0)

为什么要使用查询字符串中的参数进行过滤?

def home
  if params[:gender]
    @people = Person.where(gender: params[:gender])
  else
    @people = People.all
  end
end

如果您转到/home.html?gender=maleparams[:gender]将返回"male",而@people将只包含男性。