逆のパターンはどうだ?
逆にmanagers/list.rhtmlが参照する先だけを、v_managersに変更するってのはどうだろう。
とりあえず、v_managers/list.rhtmlをmanagresにコピーしてみるが、どうせv_managreオブジェクトは存在しないから、なんとかしなくてはね。
どこでどんなエラーになるか試してみると
<% for v_manager in @v_managers %>
の部分で、
You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occured while evaluating nil.each
と言われた。 @v_managersがnilだったって事ね。
問題の行の上にある
<% for column in VManager.content_columns %> <th><%= column.human_name %></th> <% end %>
の箇所ではエラーになっていないのは、VManager.content_columnsがクラスメソッドだからだろうか?
なんにしても、@v_managersを作ってくれるのは誰だって事だね。
@v_managersを作っているのは、
controllers/managers_controller.rbで、
def list @manager_pages, @managers = paginate :v_managers, :per_page => 10 end
に変更しておいて、list.rhtmlの@v_managersを@managersに変更するとOKになった。
ちなみにv_managerビューの定義を変更(b.id as Depertmentとか)してみるとちゃんと反映されるので、間違いなくビューを見ているようだ。