2013-05-24 2 views
5

У меня есть декоратор, который возвращает либо строку, либо коллекцию.Оказание частичного от декоратора дрессировщика

На мой взгляд, я хочу отобразить возврат этого метода декоратора.

class MyDecorator < Draper::Decorator 
    def stuff 
    if condition 
     'some string' 
    else 
     render model.some_collection 
    end 
    end 
end 

Теперь, на мой взгляд, я хочу отобразить строку, если она является строкой или отобразить ее.

= my_object.stuff 

К сожалению, я не могу получить доступ к методу render внутри Draper::Decorator. Мысли?

ответ

7

От https://github.com/drapergem/draper#accessing-helpers:

Нормального Rails помощники по-прежнему полезен для многих задач. при условии, помощник оба рельса и те, которые определены в приложении можно получить с помощью метода ч

Итак, замените render с h.render и он должен работать нормально.

+0

У меня не было возможности реализовать это исправление, спасибо за ваш ответ. Я отмечу его как полностью, как только подтвержу, что он работает. Я не могу поверить, что я пропустил это в Readme ... – ardavis

2

вы можете включить модуль Draper's Draper::LazyHelpers внутри декоратора, чтобы использовать ActionView::Helpers и остальную часть ActionView, как и у вас всегда с представлениями.