2

1ページのアプリケーションを構築しようとしていますが、Railsのルーティングに問題があります。基本的に、管理ルート内のすべてを管理コントローラーインデックスに接続しますが、jsonは特定のリソースに接続します。私はもう試した

namespace :admin do
  constraints :format => 'html' do
    match '*path' => 'admin#index'
  end

  constraints :format => 'json' do
      resources :user, :items
  end
end

この場合、パスは貪欲に一致し、/ admin / users.jsonと一致します。:format=>'json'ブロックを上に移動すると。/ admin/usersと一致します

指定した制約ブロックがまったく機能しないようです。

Railsバージョン3.2.6レーキルート

/admin/*path(.:format)                        admin/admin#index {:format=>"html"}
admin_users GET    /admin/users(.:format)     admin/users#index {:format=>"json"}

/*管理者ユーザーおよび管理者アイテムのその他の通常のリソースルート*/

確認しましたが、ルートがありません/admin/users(.format)admin / users#index {:format => "html"}

まさに私が思う通りのようです。しかし、どういうわけかまだ動作しません

更新: jsonブロックを上に移動すると、なんとか機能するようになりました。ただし、htmlブロックが上にある場合。それはまだ私に問題を引き起こしています。でも今はそれで十分だと思います。みんなありがとう

元の問題は、request.xhrを使用したことです。私がrespond_toを使用すべきだったコントローラーで

Update2Uhm が/admin/ usersに移動すると、実際には機能しません。許容できないエラーが発生しました。最初のルールは一致せず、2番目のルールと一致すると思います。

4

1 に答える 1

3

jsonブロックを上に移動し、各jsonリソースにフォーマットセグメントを必須にすると機能しますか?Rails 3.2では、これはformatオプションをtrueに設定することで発生します。

namespace :admin do
  constraints(format: "json") do
    resources :items, format: true
    resources :users, format: true
  end

  constraints(format: "html") do
    match "*path" => "admin#index"
  end
end
于 2012-09-02T11:58:01.837 に答える