I have a decorator that returns either a string, or a collection.
In my view, I want to display the return of this decorator method.
class MyDecorator < Draper::Decorator
def stuff
if condition
'some string'
else
render model.some_collection
end
end
end
Now in my view I want to render the string if it's a string, or render the collection.
= my_object.stuff
Unfortunately I cannot access the render
method inside Draper::Decorator
. Thoughts?
From https://github.com/drapergem/draper#accessing-helpers:
Normal Rails helpers are still useful for lots of tasks. Both Rails' provided helper and those defined in your app can be accessed via the h method
So, replace render
with h.render
and it should work fine.
you can include Draper's Draper::LazyHelpers
module inside the decorator to use the ActionView::Helpers
and the rest of ActionView as you've always have with views.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With