2017-02-14 58 views
0

我正在尋找一種方法來查找我當前正從幫助程序執行的哪種渲染類型。主要是爲了做這樣的事情:從Rails幫助程序中查找當前渲染MIME類型

# some_helper.rb 
def url_to_faq 
    if plain_text_render 
    ... 
    else 
    # HTML 
    end 
end 

我們已經在我們使用的是寶石用一種變通方法覆寫,render,但它的毛。有沒有官方的方式來獲取渲染器元數據,無論是在Rails 4或Rails 5?

回答

0

我想你可以在這裏使用演示者。

在控制器:

@link_presenter = LinkPresenter.new(format: request.format.symbol, view: view_context) 

鏈接主持人類:

class LinkPresenter 
    def initialize(format:, view:) 
    @format = format 
    @view = view 
    end 

    def url_to_faq 
    if format == :html 
     ... 
    else 
     ... 
    end 
    end 
end 

然後在視圖:

@link_presenter.url_to_faq 

通過傳遞view_context演示者您可以訪問視圖助手。如果不需要,然後放下它。

大約主持人好文章:Presenters in Rails by Nithin Bekal

+0

不,這絕對不是我後,很抱歉。我知道「乾淨」的方式是顯式依賴注入,但我正在尋找內省。 – Julik