这真让我烦恼。我的控制器工作正常,但我现在已经更改了命名空间,似乎遇到路径或其他问题。我尝试按照rake路线编辑路径,但仍无济于事
这是错误:
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
我的观点文件
<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
答案 0 :(得分:1)
您的视图包含非命名空间路由。将这些替换为命名空间的:
<td><%= link_to 'Show', admin_testo_path(testo) %></td>
<td><%= link_to 'Edit', edit_admin_testo_path(testo) %></td>