0

私は最近、 Rails Relationships へのアクセスに関してここで解決された質問を投稿しました。答えはうまく機能し、レコードの埋め込みは単一レベルのネストされた属性に対してうまく機能しました (プレビューの質問の例は、1 つのコホートに多くのブーツがあるというものでした)。

私が仕事をすることができないのは、ネスティングの第 2 レベルを追加することです (1 つのコホートには、それぞれが多くのハブを持つ多くのブーツがあります)。store.js.coffee ファイルに次の拡張子があります。

Plato.Adapter = DS.RESTAdapter.extend()

Plato.Store = DS.Store.extend(adapter: Plato.Adapter)

Plato.Adapter.map "Plato.Cohort", 
    boots:
    embedded: "always"

Plato.Adapter.map "Plato.Boot",
  hubs:
    embedded: "load"

これを実現する簡単な方法はありますか (つまり、上記のコードは機能しません)。

私が遭遇した1つの問題は、実行時にコンソールにある

var hub = App.Hub.find(1)

次のエラーが表示されます

Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:3031/hubs/1

私の残り火ルーティングが次のようになっている場合

App.Router.map ()->
    this.resource('cohorts', ->
        this.resource('cohort', {path: '/:cohort_id'}, ->
        this.resource('boot', {path: '/boots/:boot_id'}, ->
                this.resource('hub', {path: '/hubs/:hub_id'})
      )
    )
  )

私のレールルーターは

  resources :cohorts do
    resources :boots do
      resources :hubs
    end
  end

標準のネストされていないルートにデフォルト設定されている理由は何ですか?

4

1 に答える 1

1

/ネストされたルート パスからプレフィックスを削除してみてください。

App.Router.map ()->
  this.resource('cohorts', ->
    this.resource('cohort', {path: ':cohort_id'}, ->
      this.resource('boot', {path: 'boots/:boot_id'}, ->
        this.resource('hub', {path: 'hubs/:hub_id'})
于 2013-06-24T17:51:02.350 に答える