0

В настоящее время возникают определенные проблемы с пониманием того, как подключить приложение Ember к Rails API в локальной локальной среде. Я довольно незнакома с подобной настройкой, а не просто с использованием чисто Rails-приложения.Как подключить приложение Ember к Rails API?

Так бегите, когда я бегу эти два отдельных приложения, это выглядит следующим образом:

Ember app running on `localhost:4200` 
Rails API running on `localhost:3000` 

И оба приложения находятся в том же каталоге

Parent Directory 
| 
|___ API 
| 
|___ Ember App 

Когда я посещаю как LOCALHOST URL, как приложения запущены. API Rails, кажется, хорошо, но Ember приложение отображает по умолчанию «Там что-то не так» страницу, которая была сделана, и ниже ошибки я получаю в консоли:

enter image description here

Я желавшему кто-то может объяснить, что может быть неправильно с моей настройкой, что вызывает эту ошибку.

ответ

2

Поскольку вы не размещены какие-либо файлы здесь, как это должно быть установлено

Внутри Ember определить адаптер приложений, который имеет пространство имен свойства:

export default ActiveModelAdapter.extend({ 
    namespace: 'api' 
}); 

Внутри рельсы конфигурации/routes.rb вы должны иметь что-то как это:

namespace :api, defaults: {format: 'json'} do 
    resource :companies 
end 

Этот ресурс должен быть определен внутри приложения/API/companies_controller.rb

module Api 
    class CompaniesController < ActionController::Base 
    skip_before_action :verify_authenticity_token 

    def index 
    ... 
    end 
end 

После того, как вы сделаете это, вы можете создать среду, как это:

уголек сервер --proxy http://localhost:3000

Обратите внимание, что это определяется по маршрутам не место внутри каталогов. Прокси также важно, если он подается отдельно.

Вы можете проверить это надстройкой, которая помогает объединить два:

https://github.com/thoughtbot/ember-cli-rails

Надеется, что это помогает.

+0

Обратите внимание, что в моем примере я использую ActiveModelAdapter. Вы также можете использовать JSONAPIAdapter. У этого объекта также есть свойство namespace: http://emberjs.com/api/data/classes/DS.JSONAPIAdapter.html#property_host –

+0

Прохладный.Похоже, я все это установил; две вещи, которые мне не хватало, были: 'ember server --proxy http: // localhost: 3000' (не знал про прокси) и' rails s --binding 0.0.0.0' – freddiev4

0

Вы должны иметь в виду, что маршруты Ember отличаются от маршрутов API Rails. Маршруты Ember определены в файле маршрутов, тогда как маршруты маршрутов определяются в вашем приложении в зависимости от того, используете ли вы контроллеры или какой-то драгоценный камень, например Grape. Поэтому, если вы нажмете на свое приложение Ember с определенным маршрутом, определенным в приложении Rails, оно может не работать, поскольку этот маршрут может не существовать для маршрутизатора Ember, если вы не нарисуете точно маршруты Rails API в маршрутизаторе Ember, что почти никогда не бывает.

Я рекомендую вам проверить, какие маршруты у вас есть на вашем маршрутизаторе Ember.

Смежные вопросы