3

我有一个应用程序,其中一个俱乐部有_many 个位置。俱乐部及其位置只能在管理员命名空间内编辑。

我正在尝试将俱乐部预加载到控制器中,以便所有操作仅处理该俱乐部。

路线是嵌套的;但是,在位置控制器中,它找不到Club模型。我究竟做错了什么?

路线.rb

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

俱乐部.rb

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

管理员/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 中寻找位置控制器?我不确定这是否是问题的一部分。

从 rake 路线

    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 回答