未初始化的常数 - 控制器内的模型

时间:2013-06-22 19:56:37

标签: ruby-on-rails routes actioncontroller

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

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

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

的routes.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

系统管理员/ locations_controller.rb

class Admin::LocationsController < ApplicationController
  before_filter :load_club

  protected 

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

另外,最后:我的路线有什么问题,它没有在管理员/俱乐部/位置寻找位置控制器?我不确定这是否是问题的一部分。

来自佣金路线的

    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

1 个答案:

答案 0 :(得分:8)

它可能在当前Admin命名空间中查找Club模型。你可以尝试:

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