0

現在、私のローカル開発環境でEmberアプリケーションをRails APIに接続する方法を理解する上で問題があります。純粋なRailsアプリケーションを実行するのとは対照的に、この種の設定にはあまり慣れていません。EmberアプリケーションをRails APIに接続するにはどうすればいいですか?

だから私はこの二つの別々のアプリを実行しているとき、それがどのように見える実行します。両方とも、

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

そして、私は両方のローカルホストのURLにアクセスすると、両方のアプリケーションが同じディレクトリに

Parent Directory 
| 
|___ API 
| 
|___ Ember App 

ですアプリケーションが実行されています。 RailsのAPIは、罰金のようですが、エンバーアプリは、私がコンソールに表示されるエラー作られたデフォルト「間違った何かがあります」ページを表示し、以下の通りです:

enter image description here

私は期待していたが誰かが私のセットアップで間違っているかもしれないことを説明することができます、それはこのエラーの原因です。

答えて

2

あなたはそれが

インサイドエンバーは、名前空間のプロパティを持つアプリケーションアダプタを定義する設定する必要がありますどのようにそれをここに任意のファイルを投稿していないので:

インサイド
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 

一度これを行うあなたは、このような環境を起動することができます。これは、ルートではないディレクトリ内の位置によって定義されていることをhttp://localhost:3000

注--proxy

燃えさしサーバー。プロキシが別々に提供される場合、プロキシも重要です。

あなたはこのアドオンことが2をマージすることができます確認することができます。

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

はそれがお役に立てば幸いです。

+0

私の例では、ActiveModelAdapterを使用しています。 JSONAPIAdapterも使用できます。これには名前空間プロパティもあります:http://emberjs.com/api/data/classes/DS.JSONAPIAdapter.html#property_host –

+0

クールです。私はこれをすべてセットアップしたように見えます。私が見逃していた2つのものは、 'ember server --proxy http:// localhost:3000'(プロキシについては知らなかった)と' rails s --binding 0.0.0.0'でした – freddiev4

0

EmberのルートはRails APIのルートとは異なることに注意してください。 Emberルートはroutesファイルで定義されていますが、コントローラやGrapeのようなgemを使用しているかどうかに応じて、アプリケーションでrailsルートが定義されています。したがって、Railsアプリケーションで定義されたいくつかのルートでEmberアプリケーションを起動した場合、Rails APIルートをEmberルータに正確にマップしない限り、Emberルータのルートが存在しない可能性があります。

Emberのルータで使用できるルートを確認することをお勧めします。

関連する問題