Ruby 局部视图在一个视图中工作,但在另一个视图中不工作

Ruby 局部视图在一个视图中工作,但在另一个视图中不工作,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我有一个页面,允许用户选择过滤器以运行查询,然后显示给定结果的结果,但保留所选过滤器以允许用户查看并调整它们,然后再次运行查询 过滤器显示在索引视图中,结果显示在结果视图中 为了实现这一点,我有一个控制器,它有两种方法:索引和结果 因为两个视图都需要显示过滤器,所以我实现了一个称为_filters的部分视图 索引和结果都会呈现这样的过滤器 <%= render 'filters' %> filters视图将这样一个HTML选择放在一起 <select id="centro_d

我有一个页面,允许用户选择过滤器以运行查询,然后显示给定结果的结果,但保留所选过滤器以允许用户查看并调整它们,然后再次运行查询

过滤器显示在索引视图中,结果显示在结果视图中

为了实现这一点,我有一个控制器,它有两种方法:索引和结果

因为两个视图都需要显示过滤器,所以我实现了一个称为_filters的部分视图 索引和结果都会呈现这样的过滤器

<%= render 'filters' %>
filters视图将这样一个HTML选择放在一起

<select id="centro_de_costos" name="centro_de_costos" class="small-12">
<% @cost_centers.each do |cost_center| %>
  <option value="<%= cost_center['name'] %>"><%= cost_center['name'] %></option>
<% end %>
</select>
控制器的index方法和results方法在获取@cost_中心列表时具有完全相同的逻辑,但奇怪的是,这适用于index视图,但在我显示results视图时不起作用

索引显示了一个带有成本中心的HTML选择控件,但结果中是一个没有任何选项的选择

我已经调试过,可以看到索引和结果都正确返回了成本中心


是什么原因造成的,我如何解决它。

您真的这样渲染局部吗?我猜erb方法喜欢这样的散列选项“过滤器”%>。您真的在视图的根搜索路径中放置了_partial.html.erb吗?你没有错过一些子目录前缀吗?只是问一下。@DavidUnric该部分称为filters,因此该文件名为_filters.html.erb,并且正在呈现过滤器视图,但SELECT的信息对于结果是空的,从上面的片段很难猜测,但看起来你的结果控制器不正确地分配了@const_centers,这与你的想法相反,或者可能被助手、钩子等的其他代码覆盖。尝试在控制器和视图中重命名它,或者更好,跟踪此实例变量的调试输出以查看其真实内容。@DavidUnric您是否可以将您的注释作为答案,因为这正是问题所在