所以我刚刚创建了一个名为RailsOnIOS的本地gem,我试图将它与rails项目集成。
我通过它在gem文件中的相对路径
来访问它gem 'rails_on_ios', path: "../"
现在可以在我的rails项目中访问gem中的lib文件中的所有模块和类。我的宝石中也有一个视图,位于app / views / uikit / navigation_bar.html.erb
根据我的理解,在gem上的app / views中存储视图应该会自动使任何安装gem的rails应用程序都可以访问它。但事实并非如此,也许是因为我试图以编程方式在我的一个gems lib文件中加载视图,如下所示:
UIStoryboard.render(file: "uikit/navigation_bar", layout: nil)
UIStoryboard类是ActionController :: Base的子类,因此它可以访问render方法。当我尝试运行rails应用程序时,我收到错误:
使用{:locale => [:en]缺少模板uikit / navigation_bar, :formats => [:html,:text,:js,:css,:ics,:csv,:vcf,:png,:jpeg, :gif,:bmp,:tiff,:svg,:mpeg,:xml,:rss,:atom,:yaml, :multipart_form,:url_encoded_form,:json,:pdf,:zip,:gzip], :variants => [],:handlers => [:raw,:erb,:html,:builder,:ruby, :咖啡,:jbuilder]}。搜索范围:* " /用户/ MYNAME / rails_app /应用/视图" *" / Users / myname / rails_app" *" /"
很明显,rails应用程序永远不会搜索我的gem中的app / views文件。如果我改变" uikit / navigation_bar"在UIStoryboard.render调用rails应用程序中的视图时,一切正常。
如何让我的rails应用访问我的gems app / views文件夹中的视图?