繁体   English   中英

在构建 Rails Gem 时,如何让 Rails 在查找视图部分时加载的 ActionView 路径中包含我的 gem 的 app/views/?

[英]When building a Rails Gem, how do I get Rails to include my gem's app/views/ in the ActionView paths that it loads when looking for view partials?

我正在建造一颗宝石。

你可以在这里看到我的超级简单 gem: https://github.com/jasonfb/xyz_gem

它只是一个 shell。

今天我想知道的是什么告诉Rails它应该加载我的Gem的视图,即加载partials时app/views/中的视图?

我有一个名为 XyzGemTest (不是 gem)的 rails 应用程序,它通过本地路径使用 gem 包括

我认为我只是在 HellosController 上进行渲染以进行演示。

该视图呈现:

this is in the app code
<%= render partial: 'hello_world' %>

请注意,我的部分hello_world在我的 Gem 中——在 app/views/_hello_world.erb 中(尽管我也尝试将它移动到 app/views/xyz_gem/_hello_world.erb——见下文)

当我加载我的应用程序时,我收到了这个常见错误:

在此处输入图像描述

如您所见,这个空白的 Rails 6.0 应用程序正试图从 3 个地方加载视图文件:(1)我自己的应用程序的 app/views 文件夹(不是 gem)(2)actiontext(3)actionmailbox

我在这里要问的是我需要对我的 Gem 做些什么来制作它,以便 ActionView 将我的 gem 的 app/views/ 文件夹包含在它查找的路径“链”中?

我尝试了 app/views/_hello_world.erb 并将 _hello_world.erb 嵌套到一个名为 xyz_gem 的文件夹中,就像这样

在此处输入图像描述

欢迎您分叉和重构我上面的 Github 存储库。

加载路径?

application.rb 有一行config.autoload_paths

我认为您需要查看那里才能找到答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM