gpt4 book ai didi

ruby-on-rails - Rails 自定义插件/带有 Partials 的 Gem

转载 作者:行者123 更新时间:2023-12-04 05:51:51 24 4
gpt4 key购买 nike

我正在写一个 gem,它为 View 提供帮助。我想通过助手插入的 HTML 足够复杂,我宁愿将它写在 _partial.html.erb 文件中。如何将 gem 的 View 路径包含在应用程序的 load_path 中?

注意:我发现唯一能做这样事情的 gem 是 Devise。当找不到 View 时,Rails 会打印(在我的机器上)如下所示的加载路径:

Missing partial sortable_nested_set/tree with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths "/home/jason/VirtualRestaurant3/app/views", "/home/jason/.rvm/gems/ruby-1.9.2-preview3/gems/devise-1.1.rc0/app/views"

Devise 是如何做到的?

我的 gem : http://github.com/jrmurad/SortableNestedSet
设计 gem :+ http://+github.com/plataformatec/devise

最佳答案

如果将“app”目录放在插件的基本目录中,Rails 会默认将 app/views 添加到 View 路径中。

.
├── app
│   └── views
│   └── plugin_name
│   └── _my_partial.html.erb

然后,您可以使用插件的辅助方法渲染部分:
render :partial => "plugin_name/my_partial"

请注意,默认情况下,Rails 不会在插件测试环境中提供 View 。要包含它们,请将以下内容添加到 test/test_helper.rb:
ActionController::Base.prepend_view_path File.dirname(__FILE__) + "/../app/views"

关于ruby-on-rails - Rails 自定义插件/带有 Partials 的 Gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3015261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com