我找到了一些解释如何使用Angular和Rails的文章和问题(请参阅:Getting Started with Ruby on Rails 5.1.4 and Angular 2+ 和Get Started with Angular 4 and Rails 5。不幸的是,这不是我想要的,因为这只是另一种方式。
目前我有一个非常大的RoR 5应用程序,我想用一个视图替换一些视图,并在rails应用程序中使用一个简单的Angular应用程序(在端口4200上运行)。
这甚至可能吗?我可以运行普通的rails应用程序(不是rails API)并从Angular应用程序获取视图吗?
我已经尝试了一些事情,例如render a view outside of actions或render a template located outside of the 'views' directory ,但我没有得到有效的解决方案。
实施例: 访问“http://localhost:3000/products”时,我不想从rails('products / index.html.erb')渲染相应的视图,而是从rails应用程序中的角项目渲染一个html文件(该文件称为'product -list.component.html'并且位于Rails.root / frontend / src / app / product-list /中,其中frontend是角项目。)
在products_controller中,我按如下方式覆盖视图路径:
const Layout = (...props, data) => {
并试图获得这样的观点:
prepend_view_path(Rails.root.join("frontend/src/app/product-list/").to_s)
但是,我收到以下错误:
def index
# @products = Product.all
renderer = ApplicationController.renderer.new(
http_host: 'localhost:4200',
https: false
)
renderer.render file: "#{Rails.root}frontend/src/app/product-list/product-list.component.html"
end
我希望我以一种可以理解的方式解释它。如果没有,请告诉我,以便我可以解释。
如果有人能帮助我真的很棒!或者至少告诉我是否可能:)