Я нашел несколько статей и вопросов, объясняющих, как использовать Angular с Rails (см .: Начало работы с Ruby on Rails 5.1.4 и Angular 2+ и Начало работы с Angular 4 и Rails 5 . К сожалению, это не совсем то, что я ищу, потому что это наоборот.
В настоящее время у меня есть довольно большое приложение RoR 5, в котором я хотел бы заменить некоторые представления, и в этом приложении rails простое приложение Angular (работающее на порте 4200) с представлением.
Это вообще возможно? Можно ли запустить обычное приложение rails (не API rails) и получить представление из приложения Angular?
Я уже пробовал некоторые вещи, например визуализация представления вне действий или визуализация шаблона, расположенного вне каталога 'views'
, но я не получил рабочее решение.
Пример:
При посещении 'http://localhost:3000/products' я не хочу отображать соответствующий вид из rails (' products / index.html.erb '), но файл html из углового проекта в приложении rails (файл называется' product -list.component.html 'и находится в Rails.root / frontend / src / app / product-list /, где frontend - это угловой проект).
В products_controller я перезаписываю путь просмотра следующим образом:
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
Но тогда я получаю следующую ошибку:
Missing template home/ramona/Dokumente/tutorials/angular-ror5-appfrontend/src/app/product-list/product-list.component.html with {:locale=>[:en], :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, :coffee, :jbuilder]}. Searched in: * "/home/ramona/Dokumente/tutorials/angular-ror5-app/app/views" * "/home/ramona/Dokumente/tutorials/angular-ror5-app" * "/"
Надеюсь, я объяснил это понятным образом. Если нет, пожалуйста, скажите мне, чтобы я мог поработать над моим объяснением.
Было бы здорово, если бы кто-то мог мне помочь! Или хотя бы скажите, если это возможно или нет :) 1032 *