在 Gem 中获取部分视图文件 (haml) 并在 Rails 中使用

Take view file (haml) partial in Gem and use in Rails

我创建了一个 gem,它在 app/views/merchants_support/navigation.html.haml 位置有一个文件,我想在我的 rails 应用程序中使用它作为一个部分。

我发现一个堆栈溢出提示我可以这样做:= render partial: "merchants_support/navigation"

这显然行不通。关于如何做到这一点有什么想法吗?

navigation.html.haml 重命名为 _navigation.html.haml 因为所有分区都应以 _ 符号开头。

Here是关于这个约定的详细信息。

对于rendering arbitrary files,你可以这样写:

render file: "/path/to/rails_apps/your_app/path/to/your/file"

The :file option takes an absolute file-system path.

所以,你可以这样做:

<%= render file: Rails.root.join("app/path/to/your/file") %>

或者,也许这样更好:

<%= render file: Rails.root.join(*"app/path/to/your/file".split('/')) %>

如果您要渲染的文件是另一个控制器中的视图(这就是您的路径),那么您可以简单地执行以下操作:

 <%= render template: "merchants_support/navigation" %>