访问地址页面出现异常No route matches "/MyTest" with {:method=>get}
发布时间:2011-06-29 18:42:46 文章来源:www.iduyao.cn 采编人员:星星草
访问地址页面出现错误No route matches "/MyTest" with {:method=>:get}
按照书上的示例,生成了一个 contraller MyTestController,但是在访问 http://127.0.0.1:3000/mytest 时 报错 No route matches "/MyTest" with {:method=>:get},不知道是什么原因。我的rials的版本是2.1.0,不知道这个问题和版本变化有没有关系,谢谢。
------解决方案--------------------
就是版本的问题。
http://www.javaeye.com/topic/162536
Recognizing the Environment
命名空间路由
好了,现在我们有一个骨瘦如柴的迷你博客像是模仿经典david在2005念做的一段15分钟创建一个BLOG的视频。现在我们更进一步:Post不应该让所有的人都可以去编辑他,我们的网站需要一个管理部分。让我们为它创建一个控制器:
./script/generate controller Admin::Posts
rails2.0 现在支持命名空间。他会创建一个子目录叫 app/controllers/admin.
我们所要作的是:
1.创建一个新的路由
2.把所有在旧的 posts控制器中的 action复制到新的 Admin::posts中
3.复制所有旧的posts视图到app/views/admin* ,在旧的posts 控制器中只留下 ‘index’和‘show’ 这两个action,
这意味着也要删除new 和 edit.
4.修改 我们刚刚复制的actions和views,让他能够知道他是在admin控制器中
首先,我们再次编辑 config/routes.rb:
Ruby代码 复制代码
1. map.namespace :admin do |admin|
2. admin.resources :posts
3. end
map.namespace :admin do |admin|
admin.resources :posts
end
这意味着我们现在有了带着 'admin'前缀的 posts的具名路由。这会使旧的POST路由和新的
admin post路由不会想混。像这样:
posts_path /posts
post_path(@post) /posts/:post_id
admin_posts_path /admin/posts
admin_post_path(@post) /admin/posts/:post_id
现在让我们从旧的POST控制器中拷贝ACTION并修改路由地址去适应新的命名空间:
Ruby代码 复制代码
1. # app/controllers/admin/posts_controller.rb
2. ...
3. def create
4. # old:
5. format.html { redirect_to(@post) }
6. # new:
7. format.html { redirect_to([:admin, @post]) }
8. end
9.
10. def update
11. # old:
12. format.html { redirect_to(@post) }
13. # new:
14. format.html { redirect_to([:admin, @post]) }
15. end
16.
17. def destroy
18. # old:
19. format.html { redirect_to(posts_url) }
20. # new:
21. format.html { redirect_to(admin_posts_url) }
22. end
23. ...
# app/controllers/admin/posts_controller.rb
...
def create
# old:
format.html { redirect_to(@post) }
# new:
format.html { redirect_to([:admin, @post]) }
end
def update
# old:
format.html { redirect_to(@post) }
# new:
format.html { redirect_to([:admin, @post]) }
end
def destroy
# old:
format.html { redirect_to(posts_url) }
# new:
format.html { redirect_to(admin_posts_url) }
end
...
不要忘记删除所有在app/controllers/posts_controller.rb中的方法,只要留下 ‘index’ 和‘show’两个方法。
现在,让我们拷贝视图(假设你的 shell已经在项目的根文件夹下):
cp app/views/posts/*.erb app/views/admin/posts
rm app/views/posts/new.html.erb
rm app/views/posts/edit.html.erb
现在让我们编辑 app/views/admin/posts中的视图:
Ruby代码 复制代码
1. <!-- app/views/admin/posts/edit.html.erb -->
2. <h1>Editing post</h1>
3.
4. <%= error_messages_for :post %>
5.
6. <% form_for([:admin, @post]) do |f| %>
7. ...
8. <% end %>
9.
10. <%= link_to 'Show', [:admin, @post] %> |
11. <%= link_to 'Back', admin_posts_path %>
<!-- app/views/admin/posts/edit.html.erb -->
<h1>Editing post</h1>
<%= error_messages_for :post %>
<% form_for([:admin, @post]) do |f| %>
...
<% end %>
<%= link_to 'Show', [:admin, @post] %> |
<%= link_to 'Back', admin_posts_path %>
Ruby代码 复制代码
1. <!-- app/views/admin/posts/new.html.erb -->
2. <h1>New post</h1>
3.
4. <%= error_messages_for :post %>
5.
6. <% form_for([:admin, @post]) do |f| %>
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
Redmine+Git,在版本库菜单中404错误怎么回事?
在配置中用Git方式管理代码,加上了本地Git库路径:
/home/git/repositories/project.g...
-
一段RUBY代码,既不报错,但是不输出结果,帮忙看下
class Song
def initialize(name,artist,duration)
@name = name
@ar...
-
有没有人使用《Web开发敏捷之道》这本书的测试出了问题啊……
正在用《Web开发敏捷之道》第3版,测试这一块出现了问题,然后接着问题...
-
关于rake命令撤销 migrations
我这里遇到一个难题:
a.) ruby script/generation migration add_price_to_product_99 price:decima...
-
Ruby on Rails 如何实现完成大型数据库的实现与管理及维护
前些天在一家公司实习进行Web开发时 所用的语言是ruby 环境是 rails ...
-
RoR菜鸟求助
我在Windows系统上安装了ruby 1.9.3p0 (2011-10-30) [i386-mingw32],
然后安装了Rails 3.1.2,
因为mysql2 0.3.10没有w...
-
三个月可以做个EC网站吗?
像这种规模的:
http://www.infotop.jp
顺便问一下,在中国有这样的信息素材网站吗?
------解决方案-------...
-
网上的rails视频中用的是什么IDE
网上有一些老外的rails讲解视频,我想问下他们用的那个是什么IDE,不胜感激
------解决方案-------...
-
安装gem的路径问题
近日需要使用redis, 因为网络连不上gem, 我下载了源码准备本地安装.安装时一切顺利, gem list也显示已经安装...
-
ruby 连接 mysql 的问题
想用ruby 连接 mysql
修改database.yml
# SQLite version 3.x
# gem install sqlite3
#
# Ensure ...