1

私はRails 4にアップグレードしており、コマンド「rspec」を実行した後です。次のエラーが表示されます。

/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/actionpack-4.0.0.rc1/lib/action_dispatch/routing/mapper.rb:1297:in `member': can't use member outside resource(s) scope (ArgumentError)

ルートファイルを少し変更しましたが、まだ機能していません。誰かが同様の問題に遭遇し、修正した場合は、私と共有してください. 前もって感謝します!

Dating::Application.routes.draw do
  get 'signup' => 'users#new'
  get 'login' => 'sessions#new'
  get 'logout' => 'sessions#destroy'
  get 'edit' => 'users#edit'
  get "/profile/:id" => "users#show"
  get "profile/:id/settings" => 'users#edit'
  get 'settings/:id' => 'users#settings'

  resources :sessions
  resources :password_resets
  resources :galleries
  resources :photos
  resources :searches

  resources :questions do
    resources :answers, only: [:new, :create]
  end

  resources :users do  
    member do
      get :settings
  end
end

  root to: 'galleries#index'

  resources :users do |user|
    resources :messages do
      collection do
        post 'delete_multiple'
         get 'settings', on: :member  
      end
    end
  end
4

1 に答える 1

2

問題はここにあると思います:

resources :messages do
  collection do
    post 'delete_multiple'
     get 'settings', on: :member  # <--here
  end
end

コレクション内でメンバーを定義することはできません。次のように、リソース ブロックに移動する必要があります。

resources :messages do
  collection do
    post 'delete_multiple'
  end
  get 'settings', on: :member
end

メンバールートはメンバーに作用するため、ID が必要になることに注意してください。コレクション ルートは、オブジェクトのコレクションに作用するため、そうではありません。したがって、両方を同時に使用することはできません。

于 2013-07-11T16:39:10.877 に答える