Ruby on rails 从Rails帮助程序中查找当前呈现MIME类型
我正在寻找一种方法来查找当前正在从帮助器执行的渲染类型。主要是做这样的事情:Ruby on rails 从Rails帮助程序中查找当前呈现MIME类型,ruby-on-rails,ruby,actionview,Ruby On Rails,Ruby,Actionview,我正在寻找一种方法来查找当前正在从帮助器执行的渲染类型。主要是做这样的事情: # some_helper.rb def url_to_faq if plain_text_render ... else # HTML end end 在我们正在使用的gem中,我们已经为渲染使用了一个变通方法覆盖,但这太糟糕了。在Rails 4或Rails 5中,是否有一些获取渲染器元数据的官方方法?我认为您可以在这里使用presenter 在控制器中: @link_presenter
# some_helper.rb
def url_to_faq
if plain_text_render
...
else
# HTML
end
end
在我们正在使用的gem中,我们已经为
渲染使用了一个变通方法覆盖,但这太糟糕了。在Rails 4或Rails 5中,是否有一些获取渲染器元数据的官方方法?我认为您可以在这里使用presenter
在控制器中:
@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
通过将视图上下文传递给演示者,您可以访问视图帮助器。如果不需要,就放下它
关于主持人的文章不错:不,这绝对不是我想要的,对不起。我知道“干净”的方法是显式的依赖注入,但我想反省一下。等等<代码>请求.格式.符号
!这就是我要找的,谢谢!