2012-06-04 7 views
9

Mi entorno:¿Cómo decorar los atributos anidados (asociaciones) con Draper en Rails 3?

estoy usando recursos anidados y habiendo problemas para averiguar dónde declarar el decorador.

#app/controllers/users_controller.rb 
def show 
    @user = UserDecorator.find(params[:id]) 
    @items = @user.items 
end 

#app/controllers/items_controller.rb 
def show 
    @item = @user.items.find(params[:id]) 
end 

he intentado reemplazar items con ItemDecorator y no funcionó. ¿Dónde debería ponerlo?

Sé que Draper tiene problemas con los recursos anidados en los formularios, ¡pero esto no es una forma!

+0

similar a http://stackoverflow.com/questions/10870306/how-should-i-use-draper-in-my-applicationcontroller – Robin

Respuesta

10

Por lo que he entendido correctamente su problema, tiene un modelo user que tiene muchos items, pero su items no estaba decorado?

Así que añadir a su UserDecorator:

class UserDecorator < Draper::Base 
    decorates :user 
    decorates_association :items #, :with => :item 

    [..] 
end 

class ItemDecorator < Draper::Base 
    decorates :item 

    [..] 
end 

echar un vistazo a the source.

Cuestiones relacionadas