【发布时间】:2015-10-01 01:43:04
【问题描述】:
我构建了一个没有命名空间的应用,现在想尝试学习命名空间。 以分离应用 api 和后端为例
试图得到这个结果 /backend/directorycategory/1/directorylisting
我已经删除了某些地方的 backend_ 以尝试调试,因为我怀疑它与目录列表是嵌套的并且没有像目录类别一样的后端这样的事实有关。
controller/backend/directorylistings_controller.rb
class Backend::DirectorylistingsController < ApplicationController
# SECURITY
before_action :set_backend_directorylisting, only: [:edit, :update, :destroy]
# INDEX
def index
backend_directorycategory = Backend::Directorycategory.find(params[:directorycategory_id])
@backend_directorylistings = backend_directorycategory.backend_directorylistings
end
# SHOW
def show
backend_directorycategory = Backend::Directorycategory.find(params[:directorycategory_id])
@backend_directorycategory = backend_directorycategory.backend_directorylistings.find(params[:id])
end
def new
backend_directorycategory = Backend::Directorycategory.find(params[:directorycategory_id])
@directorylisting = backend_directorycategory.directorylistings.build
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @backend_directorycategory }
end
end
# EDIT
def edit
backend_directorycategory = Backend::Directorycategory.find(params[:directorycategory_id])
@directorylisting = backend_directorycategory.directorylistings.find(params[:id])
end
# CREATE
def create
@backend_directorycategory = Backend::Directorycategory.find(params[:directorycategory_id])
@directorylisting = @backend_directorycategory.directorylistings.create(directorylisting_params)
respond_to do |format|
if @directorylisting.save
format.html { redirect_to backend_directorycategory_directorylistings_path, notice: 'Directory Listing was Successfully Created.' }
format.json { render action: 'show', status: :created, location: @directorylisting }
else
format.html { render action: 'new' }
format.json { render json: @backend_directorylisting.errors, status: :unprocessable_entity }
end
end
end
# UPDATE
def update
respond_to do |format|
if @directorylisting.update(directorylisting_params)
format.html { redirect_to backend_directorycategory_directorylistings_path, notice: 'Directory Listing was Successfully Updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @directorylisting.errors, status: :unprocessable_entity }
end
end
end
# DELETE
def destroy
@backend_directorycategory = Directorycategory.find(params[:directorycategory_id])
@directorylisting = @backend_directorycategory.directorylistings.find(params[:id])
@directorylisting.destroy
respond_to do |format|
format.html { redirect_to backend_directorycategory_directorylistings_path, notice: 'Directory Listing was Successfully Deleted.' }
format.json { head :no_content }
end
end
private
def set_backend_directorylisting
@directorylisting = Directorylisting.find(params[:id])
end
def directorylisting_backend_params
params.require(:backend_directorylisting).permit(:memberlisting_id, :directorycategory_id)
end
end
models/backend/directorylisting.rb
class Backend::Directorylisting < ActiveRecord::Base
# Model Relationship
belongs_to :backend_directorycategory
belongs_to :backend_memberlisting
has_one :backend_membercontact, :through => :backend_memberlisting
# Validation for Form Fields (More of a Self-Check)
validates :memberlisting_id,
presence: true
# Validation for Form Fields (More of a Self-Check)
validates :directorycategory_id,
presence: true
end
/models/backend.rb
module Backend
def self.table_name_prefix
'backend_'
end
end
routes.rb
# Active Security + Data Separation
Rails.application.routes.draw do
# Security + Data Separation
namespace :api do
resources :directorycategories, defaults: {format: 'json'} do
resources :directorylistings
end
end
namespace :backend do
# Member Routes
resources :membercontacts do
resources :memberlistings
end
# Directory Information
resources :directorycategories do
resources :directorylistings
end
end
# Mount Engine @ Root
end
耙式路由(命名空间)
Prefix Verb URI Pattern Controller#Action
api_directorycategory_directorylistings GET /api/directorycategories/:directorycategory_id/directorylistings(.:format) api/directorylistings#index {:format=>"json"}
POST /api/directorycategories/:directorycategory_id/directorylistings(.:format) api/directorylistings#create {:format=>"json"}
new_api_directorycategory_directorylisting GET /api/directorycategories/:directorycategory_id/directorylistings/new(.:format) api/directorylistings#new {:format=>"json"}
edit_api_directorycategory_directorylisting GET /api/directorycategories/:directorycategory_id/directorylistings/:id/edit(.:format) api/directorylistings#edit {:format=>"json"}
api_directorycategory_directorylisting GET /api/directorycategories/:directorycategory_id/directorylistings/:id(.:format) api/directorylistings#show {:format=>"json"}
PATCH /api/directorycategories/:directorycategory_id/directorylistings/:id(.:format) api/directorylistings#update {:format=>"json"}
PUT /api/directorycategories/:directorycategory_id/directorylistings/:id(.:format) api/directorylistings#update {:format=>"json"}
DELETE /api/directorycategories/:directorycategory_id/directorylistings/:id(.:format) api/directorylistings#destroy {:format=>"json"}
api_directorycategories GET /api/directorycategories(.:format) api/directorycategories#index {:format=>"json"}
POST /api/directorycategories(.:format) api/directorycategories#create {:format=>"json"}
new_api_directorycategory GET /api/directorycategories/new(.:format) api/directorycategories#new {:format=>"json"}
edit_api_directorycategory GET /api/directorycategories/:id/edit(.:format) api/directorycategories#edit {:format=>"json"}
api_directorycategory GET /api/directorycategories/:id(.:format) api/directorycategories#show {:format=>"json"}
PATCH /api/directorycategories/:id(.:format) api/directorycategories#update {:format=>"json"}
PUT /api/directorycategories/:id(.:format) api/directorycategories#update {:format=>"json"}
DELETE /api/directorycategories/:id(.:format) api/directorycategories#destroy {:format=>"json"}
backend_membercontact_memberlistings GET /backend/membercontacts/:membercontact_id/memberlistings(.:format) backend/memberlistings#index
POST /backend/membercontacts/:membercontact_id/memberlistings(.:format) backend/memberlistings#create
new_backend_membercontact_memberlisting GET /backend/membercontacts/:membercontact_id/memberlistings/new(.:format) backend/memberlistings#new
edit_backend_membercontact_memberlisting GET /backend/membercontacts/:membercontact_id/memberlistings/:id/edit(.:format) backend/memberlistings#edit
backend_membercontact_memberlisting GET /backend/membercontacts/:membercontact_id/memberlistings/:id(.:format) backend/memberlistings#show
PATCH /backend/membercontacts/:membercontact_id/memberlistings/:id(.:format) backend/memberlistings#update
PUT /backend/membercontacts/:membercontact_id/memberlistings/:id(.:format) backend/memberlistings#update
DELETE /backend/membercontacts/:membercontact_id/memberlistings/:id(.:format) backend/memberlistings#destroy
backend_membercontacts GET /backend/membercontacts(.:format) backend/membercontacts#index
POST /backend/membercontacts(.:format) backend/membercontacts#create
new_backend_membercontact GET /backend/membercontacts/new(.:format) backend/membercontacts#new
edit_backend_membercontact GET /backend/membercontacts/:id/edit(.:format) backend/membercontacts#edit
backend_membercontact GET /backend/membercontacts/:id(.:format) backend/membercontacts#show
PATCH /backend/membercontacts/:id(.:format) backend/membercontacts#update
PUT /backend/membercontacts/:id(.:format) backend/membercontacts#update
DELETE /backend/membercontacts/:id(.:format) backend/membercontacts#destroy
backend_directorycategory_directorylistings GET /backend/directorycategories/:directorycategory_id/directorylistings(.:format) backend/directorylistings#index
POST /backend/directorycategories/:directorycategory_id/directorylistings(.:format) backend/directorylistings#create
new_backend_directorycategory_directorylisting GET /backend/directorycategories/:directorycategory_id/directorylistings/new(.:format) backend/directorylistings#new
edit_backend_directorycategory_directorylisting GET /backend/directorycategories/:directorycategory_id/directorylistings/:id/edit(.:format) backend/directorylistings#edit
backend_directorycategory_directorylisting GET /backend/directorycategories/:directorycategory_id/directorylistings/:id(.:format) backend/directorylistings#show
PATCH /backend/directorycategories/:directorycategory_id/directorylistings/:id(.:format) backend/directorylistings#update
PUT /backend/directorycategories/:directorycategory_id/directorylistings/:id(.:format) backend/directorylistings#update
DELETE /backend/directorycategories/:directorycategory_id/directorylistings/:id(.:format) backend/directorylistings#destroy
backend_directorycategories GET /backend/directorycategories(.:format) backend/directorycategories#index
POST /backend/directorycategories(.:format) backend/directorycategories#create
new_backend_directorycategory GET /backend/directorycategories/new(.:format) backend/directorycategories#new
edit_backend_directorycategory GET /backend/directorycategories/:id/edit(.:format) backend/directorycategories#edit
backend_directorycategory GET /backend/directorycategories/:id(.:format) backend/directorycategories#show
PATCH /backend/directorycategories/:id(.:format) backend/directorycategories#update
PUT /backend/directorycategories/:id(.:format) backend/directorycategories#update
DELETE /backend/directorycategories/:id(.:format) backend/directorycategories#destroy
rake 路由 (:module)
Prefix Verb URI Pattern Controller#Action
api_directorycategory_directorylistings GET /api/directorycategories/:directorycategory_id/directorylistings(.:format) api/directorylistings#index {:format=>"json"}
POST /api/directorycategories/:directorycategory_id/directorylistings(.:format) api/directorylistings#create {:format=>"json"}
new_api_directorycategory_directorylisting GET /api/directorycategories/:directorycategory_id/directorylistings/new(.:format) api/directorylistings#new {:format=>"json"}
edit_api_directorycategory_directorylisting GET /api/directorycategories/:directorycategory_id/directorylistings/:id/edit(.:format) api/directorylistings#edit {:format=>"json"}
api_directorycategory_directorylisting GET /api/directorycategories/:directorycategory_id/directorylistings/:id(.:format) api/directorylistings#show {:format=>"json"}
PATCH /api/directorycategories/:directorycategory_id/directorylistings/:id(.:format) api/directorylistings#update {:format=>"json"}
PUT /api/directorycategories/:directorycategory_id/directorylistings/:id(.:format) api/directorylistings#update {:format=>"json"}
DELETE /api/directorycategories/:directorycategory_id/directorylistings/:id(.:format) api/directorylistings#destroy {:format=>"json"}
api_directorycategories GET /api/directorycategories(.:format) api/directorycategories#index {:format=>"json"}
POST /api/directorycategories(.:format) api/directorycategories#create {:format=>"json"}
new_api_directorycategory GET /api/directorycategories/new(.:format) api/directorycategories#new {:format=>"json"}
edit_api_directorycategory GET /api/directorycategories/:id/edit(.:format) api/directorycategories#edit {:format=>"json"}
api_directorycategory GET /api/directorycategories/:id(.:format) api/directorycategories#show {:format=>"json"}
PATCH /api/directorycategories/:id(.:format) api/directorycategories#update {:format=>"json"}
PUT /api/directorycategories/:id(.:format) api/directorycategories#update {:format=>"json"}
DELETE /api/directorycategories/:id(.:format) api/directorycategories#destroy {:format=>"json"}
membercontact_memberlistings GET membercontacts/:membercontact_id/memberlistings(.:format) backend/memberlistings#index
POST membercontacts/:membercontact_id/memberlistings(.:format) backend/memberlistings#create
new_membercontact_memberlisting GET membercontacts/:membercontact_id/memberlistings/new(.:format) backend/memberlistings#new
edit_membercontact_memberlisting GET membercontacts/:membercontact_id/memberlistings/:id/edit(.:format) backend/memberlistings#edit
membercontact_memberlisting GET membercontacts/:membercontact_id/memberlistings/:id(.:format) backend/memberlistings#show
PATCH membercontacts/:membercontact_id/memberlistings/:id(.:format) backend/memberlistings#update
PUT membercontacts/:membercontact_id/memberlistings/:id(.:format) backend/memberlistings#update
DELETE membercontacts/:membercontact_id/memberlistings/:id(.:format) backend/memberlistings#destroy
membercontacts GET membercontacts(.:format) backend/membercontacts#index
POST membercontacts(.:format) backend/membercontacts#create
new_membercontact GET membercontacts/new(.:format) backend/membercontacts#new
edit_membercontact GET membercontacts/:id/edit(.:format) backend/membercontacts#edit
membercontact GET membercontacts/:id(.:format) backend/membercontacts#show
PATCH membercontacts/:id(.:format) backend/membercontacts#update
PUT membercontacts/:id(.:format) backend/membercontacts#update
DELETE membercontacts/:id(.:format) backend/membercontacts#destroy
directorycategory_directorylistings GET directorycategories/:directorycategory_id/directorylistings(.:format) backend/directorylistings#index
POST directorycategories/:directorycategory_id/directorylistings(.:format) backend/directorylistings#create
new_directorycategory_directorylisting GET directorycategories/:directorycategory_id/directorylistings/new(.:format) backend/directorylistings#new
edit_directorycategory_directorylisting GET directorycategories/:directorycategory_id/directorylistings/:id/edit(.:format) backend/directorylistings#edit
directorycategory_directorylisting GET directorycategories/:directorycategory_id/directorylistings/:id(.:format) backend/directorylistings#show
PATCH directorycategories/:directorycategory_id/directorylistings/:id(.:format) backend/directorylistings#update
PUT directorycategories/:directorycategory_id/directorylistings/:id(.:format) backend/directorylistings#update
DELETE directorycategories/:directorycategory_id/directorylistings/:id(.:format) backend/directorylistings#destroy
directorycategories GET directorycategories(.:format) backend/directorycategories#index
POST directorycategories(.:format) backend/directorycategories#create
new_directorycategory GET directorycategories/new(.:format) backend/directorycategories#new
edit_directorycategory GET directorycategories/:id/edit(.:format) backend/directorycategories#edit
directorycategory GET directorycategories/:id(.:format) backend/directorycategories#show
PATCH directorycategories/:id(.:format) backend/directorycategories#update
PUT directorycategories/:id(.:format) backend/directorycategories#update
DELETE directorycategories/:id(.:for
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 namespaces