2013-05-24 32 views
5

Tôi có một trình trang trí trả về một chuỗi hoặc một bộ sưu tập.Hiển thị một phần từ Draper Decorator

Theo quan điểm của tôi, tôi muốn hiển thị lợi tức của phương thức trang trí này.

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

Hiện tại, tôi muốn hiển thị chuỗi nếu đó là chuỗi hoặc hiển thị bộ sưu tập.

= my_object.stuff 

Rất tiếc, tôi không thể truy cập phương thức render bên trong Draper::Decorator. Suy nghĩ?

Trả lời

7

Từ https://github.com/drapergem/draper#accessing-helpers:

Bình thường Rails giúp việc vẫn còn hữu ích cho rất nhiều nhiệm vụ. Cả trợ giúp được cung cấp của Rails và những người được xác định trong ứng dụng của bạn có thể được truy cập thông qua phương thức h

Vì vậy, thay thế render bằng h.render và nó sẽ hoạt động tốt.

+0

Tôi chưa có cơ hội triển khai bản sửa lỗi đó, cảm ơn bạn đã trả lời. Tôi sẽ đánh dấu nó là hoàn thành khi tôi xác minh rằng nó hoạt động. Tôi không thể tin rằng tôi đã bỏ lỡ điều đó trong Readme ... – ardavis

2

bạn có thể bao gồm mô-đun Draper::LazyHelpers của Draper bên trong trình trang trí để sử dụng ActionView::Helpers và phần còn lại của ActionView như bạn đã luôn có lượt xem.

Các vấn đề liên quan