activescaffold @records在过滤器之前的操作

时间:2009-08-24 19:31:11

标签: ruby-on-rails callback activescaffold

我想致电

@records.collect{|r| r.set_some_virtual_attribute(@context)}

在渲染activescaffold索引视图之前,但如果我这样做:

controller FooController < ApplicationController
  before_filter :change_things, :only => :index
  active_scaffold :foos

  protected

  def change_things
     @records.collect{|r| r.set_some_virtual_attribute(@context)}
  end
end

我明白了:

 You have a nil object when you didn't expect it!
 You might have expected an instance of Array. 
 The error occurred while evaluating nil.collect

调用索引视图时。如果我在ActiveScaffold调用之后放置过滤器,也会发生同样的事情。我会采用某种不同的方法,但最重要的是我需要根据控制器中的某些上下文在@records中设置每个对象的虚拟属性,以便在最终表中显示

THX

-C

2 个答案:

答案 0 :(得分:1)

您实际上不需要在控制器中访问此集合。我想做的事情可以通过定义适当的辅助方法来解决。

答案 1 :(得分:0)

我没有对此进行测试,但我认为它应该是@ foos.collect而不是@ records.collect