Jas*_*zek 4 ruby ruby-on-rails
我正在研究一个新的rails应用程序的管理部分,我正在尝试设置一些路线来"正确"做事.我有以下控制器:
class Admin::BlogsController < ApplicationController
def index
@blogs = Blog.find(:all)
end
def show
@blog = Blog.find(params[:id])
end
...
end
Run Code Online (Sandbox Code Playgroud)
在routes.rb中:
map.namespace :admin do |admin|
admin.resources :blogs
end
Run Code Online (Sandbox Code Playgroud)
在views/admin/blogs/index.html.erb中:
<% for blog in @blogs %>
<%= link_to 'Delete', admin_blog(blog), :method => :delete
<% end %>
Run Code Online (Sandbox Code Playgroud)
我已经确认路线存在:
admin_blogs GET /admin/blogs {:action => "index", :controller=>"admin/blogs"}
admin_blog GET /admin/blogs/:id {:action => "show", :controller => "admin/blogs"}
....
Run Code Online (Sandbox Code Playgroud)
但是当我尝试查看http:// localhost:3000/admin/blogs时,我收到此错误:
undefined method 'admin_blog' for #<ActionView::Base:0xb7213da8>
Run Code Online (Sandbox Code Playgroud)
我哪里出错了,为什么?
Joh*_*ley 10
您的删除链接应以_path结尾:
<%= link_to 'Delete', admin_blog_path(blog), :method => :delete %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5374 次 |
| 最近记录: |