3

クラブに多くの場所があるアプリケーションがあります。クラブとその場所は、管理名前空間内でのみ編集できます。

すべてのアクションがそのクラブのみを処理するように、コントローラーにクラブをプリロードしようとしています。

ルートはネストされています。ただし、場所コントローラーでは、Clubモデルが見つかりません。私は何を間違っていますか?

ルート.rb

namespace :admin do
  resources :clubs do
    resources :locations
  end
end

club.rb

class Club < ActiveRecord::Base
  belongs_to :membership
  has_many :users
  has_many :locations
  #accepts_nested_attributes_for :locations
end

admin/locations_controller.rb

class Admin::LocationsController < ApplicationController
  before_filter :load_club

  protected 

  def load_club
    @club = Club.find(params[:club_id])
  end
end

また、最後に: admin/clubs/locations でロケーション コントローラーを探していないルートの何が問題になっていますか? それが問題の一部であるかどうかはわかりません。

レーキルートから

    admin_club_locations POST   /admin/clubs/:club_id/locations(.:format)          admin/locations#create
 new_admin_club_location GET    /admin/clubs/:club_id/locations/new(.:format)      admin/locations#new
edit_admin_club_location GET    /admin/clubs/:club_id/locations/:id/edit(.:format) admin/locations#edit
     admin_club_location PUT    /admin/clubs/:club_id/locations/:id(.:format)      admin/locations#update
                         DELETE /admin/clubs/:club_id/locations/:id(.:format)      admin/locations#destroy
4

1 に答える 1

9

おそらくClub、現在の Admin 名前空間内でモデルを検索します。あなたは試すことができます:

def load_club
  @club = ::Club.find(params[:club_id])
end
于 2013-06-22T20:16:37.093 に答える