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

Access another action instance variable from view

本文关键字:操作 实例 变量 另一个 访问 视图      更新时间:2023-09-26

假设我有一个视图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

当我尝试循环访问视图中的@people2时收到错误消息。它说@people2是空的。所以,我的问题是如何从我的观点访问该变量?

谢谢。

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

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

如果你去/home.html?gender=maleparams[:gender]会返回"male",@people只会包含雄性。