我有一个应用程序,其中俱乐部有多个位置。俱乐部&他们的位置只能在管理员命名空间内编辑。
我正在尝试将俱乐部预加载到控制器中,以便所有操作仅与该俱乐部相关。
路线是嵌套的;但是,在位置控制器中,它找不到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
答案 0 :(得分:8)
它可能在当前Admin命名空间中查找Club
模型。你可以尝试:
def load_club
@club = ::Club.find(params[:club_id])
end