У меня есть объект Person с ролями has_many. Роли, в свою очередь, принадлежат приложению. Я использую следующий фрагмент кода для рендеринга этих глубоких отношений в XML:
format.xml { render :text => @person.to_xml( :include => { :roles => { :include => :application } } ) }
Вывод что-то вроде этого:
<person>
<email>****@****.edu</email>
<first>Christopher</first>
<last>****</last>
<loginid>****</loginid>
<roles type="array">
<role>
<application-id type="integer">3</application-id>
<name>Access</name>
<application>
<name>****</name>
</application>
</role>
<role>
<application-id type="integer">2</application-id>
<name>Create Ballots</name>
<application>
<name>****</name>
</application>
</role>
</roles>
</person>
Это работает, однако я хотел бы отфильтровать, какие приложения и роли он показывает. Я хотел бы показывать только роли (и, следовательно, вложенные в них приложения), где application_id - это определенное целое число. Например, следующий вывод, если я искал только application_id == 3:
<person>
<email>****@****.edu</email>
<first>Christopher</first>
<last>****</last>
<loginid>****</loginid>
<roles type="array">
<role>
<application-id type="integer">3</application-id>
<name>Access</name>
<application>
<name>****</name>
</application>
</role>
</roles>
</person>
Заранее благодарим за любую помощь, которую вы можете предложить.