Аргумент коллекции просто принимает список. Нет причин, по которым это не сработает:
render :partial => 'dogs/summary', :as => :dog,
:collection => @dogs.select{|dog| dog.gender == "M"}
Лично я предпочитаю создавать эти списки в контроллере. Я думаю, что выглядит лучше, и его можно сделать намного СУХОЕ с именованными областями.
IE:
Модель
class dog < ActiveRecord::Base
named_scope :male, :conditions => {:gender => "M"}
named_scope :female, :conditions => {:gender => "F"}
...
end
Контроллер
class DogsController < ApplicationController
...
def index
if params[:user_id]
@user = User.find(params[:user_id])
@male_dogs = @user.dogs.male
@female_dogs = @user.dogs.female
else
@male_dogs = Dog.male
@female_dogs = Dog.female
end
end
end
View
%h2 Male Dogs
= render :partial => 'dogs/summary', :as => :dog,
:collection => @male_dogs
%h2 Female Dogs
= render :partial => 'dogs/summary', :as => :dog,
:collection => @female_dogs