2013-05-31 24 views
1

這實在讓我感到困擾。我的控制器工作正常,但我現在已經改變了命名空間,並且似乎遇到了路徑問題或其他問題。我試着按照耙路線,但仍無濟於事管理中的NoMethodError - 命名空間的Rails更改

在這裏設置的路徑是錯誤:

Showing /home/will/Development/Ruby-Files/tasks/app/views/admin/testos/index.html.erb where line #16 raised: 

undefined method `testo_path' for #<#<Class:0xb61ee4f0>:0xaeb2c38> 

我的控制器:

class Admin::TestosController < ApplicationController 
    # GET /testos 
    # GET /testos.json 
    def index 
    @testos = Testo.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @testos } 
    end 
    end 

    # GET /testos/1 
    # GET /testos/1.json 
    def show 
    @testo = Testo.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.json { render json: @testo } 
    end 
    end 

    # GET /testos/new 
    # GET /testos/new.json 
    def new 
    @testo = Testo.new 

    respond_to do |format| 
     format.html # new.html.erb 
     format.json { render json: @testo } 
    end 
    end 

    # GET /testos/1/edit 
    def edit 
    @testo = Testo.find(params[:id]) 
    end 

    # POST /testos 
    # POST /testos.json 
    def create 
    @testo = Testo.new(params[:testo]) 

    respond_to do |format| 
     if @testo.save 
     format.html { redirect_to @testo, notice: 'Testo was successfully created.' } 
     format.json { render json: @testo, status: :created, location: @testo } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @testo.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # PUT /testos/1 
    # PUT /testos/1.json 
    def update 
    @testo = Testo.find(params[:id]) 

    respond_to do |format| 
     if @testo.update_attributes(params[:testo]) 
     format.html { redirect_to @testo, notice: 'Testo was successfully updated.' } 
     format.json { head :no_content } 
     else 
     format.html { render action: "edit" } 
     format.json { render json: @testo.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # DELETE /testos/1 
    # DELETE /testos/1.json 
    def destroy 
    @testo = Testo.find(params[:id]) 
    @testo.destroy 

    respond_to do |format| 
     format.html { redirect_to testos_url } 
     format.json { head :no_content } 
    end 
    end 
end 

而且我認爲文件

上市testos

<table> 
    <tr> 
    <th>Title</th> 
    <th>Entry</th> 
    <th></th> 
    <th></th> 
    <th></th> 
    </tr> 

<% @testos.each do |testo| %> 
    <tr> 
    <td><%= testo.title %></td> 
    <td><%= testo.entry %></td> 
    <td><%= link_to 'Show', testo %></td> 
    <td><%= link_to 'Edit', edit_testo_path(testo) %></td> 
    <td><%= link_to 'Destroy', testo, method: :delete, data: { confirm: 'Are you sure?' } %></td> 
    </tr> 
<% end %> 
</table> 

<br /> 

<%= link_to 'New Testo', new_testo_path %> 

我的路由:

namespace :admin do 
    resources :testos 
end 

耙路線:

 root  /        Pages#index 
     admin_testos GET /admin/testos(.:format)   admin/testos#index 
        POST /admin/testos(.:format)   admin/testos#create 
    new_admin_testo GET /admin/testos/new(.:format)  admin/testos#new 
    edit_admin_testo GET /admin/testos/:id/edit(.:format) admin/testos#edit 
     admin_testo GET /admin/testos/:id(.:format)  admin/testos#show 
        PUT /admin/testos/:id(.:format)  admin/testos#update 
        DELETE /admin/testos/:id(.:format)  admin/testos#destroy 

回答

1

您的視圖中包含非命名空間的路線。替換這些出去的命名空間的:

<td><%= link_to 'Show', admin_testo_path(testo) %></td> 
<td><%= link_to 'Edit', edit_admin_testo_path(testo) %></td> 
+0

我認爲我試過了,生病給它一個現在去,雖然要仔細檢查 – Melbourne2991

+0

這是我的錯誤: '沒有路由匹配{:動作=>」顯示「,:控制器=>」admin/testos「}' – Melbourne2991

+0

對不起,我道歉我沒有包括括號,你能解釋爲什麼我必須添加路徑和(testo),我不能只添加admin_? – Melbourne2991