Rails的路由
问题描述:
我一直在试图读取的轨道从外部路由并惨遭失败议题和问题。我相信我想要做的事很基本,但无论出于何种原因我都无法弄清楚。这是情况。Rails的路由
我想我的网址阅读www.example.com/maps,而不是他们现在在做什么www.example.com/maps/map这是控制器然后查看名称。
我的路线如下所示。
homepages GET /homepages(.:format) homepages#index
POST /homepages(.:format) homepages#create
new_homepage GET /homepages/new(.:format) homepages#new
edit_homepage GET /homepages/:id/edit(.:format) homepages#edit
homepage GET /homepages/:id(.:format) homepages#show
PUT /homepages/:id(.:format) homepages#update
DELETE /homepages/:id(.:format) homepages#destroy
root / homepages#index
maps GET /maps(.:format) maps#index
POST /maps(.:format) maps#create
new_map GET /maps/new(.:format) maps#new
edit_map GET /maps/:id/edit(.:format) maps#edit
map GET /maps/:id(.:format) maps#show
PUT /maps/:id(.:format) maps#update
DELETE /maps/:id(.:format) maps#destroy
work_index GET /work(.:format) work#index
POST /work(.:format) work#create
new_work GET /work/new(.:format) work#new
edit_work GET /work/:id/edit(.:format) work#edit
work GET /work/:id(.:format) work#show
PUT /work/:id(.:format) work#update
DELETE /work/:id(.:format) work#destroy
contact_index GET /contact(.:format) contact#index
我试图做类似的资源:地图:PATH =>“”,但是当我访问我的网站的网址出现了同样的。这是由于我的观点代码看起来像
<li class="current_page_item"><%= link_to "Bio", :controller => :homepages, :action => :index %></li>
<li><%= link_to "Work", :controller => :work, :action => :experience %></li>
<li><%= link_to "Map", :controller => :maps, :action => :map %></li>
<li><%= link_to "Contact", :controller => :contact, :action => :email %></li>
或者是因为我的路线是错误的?
我的路线文件现在看起来像
Me::Application.routes.draw do
resources :homepages
root :to => 'homepages#index'
resources :maps
resources :work
resources :contact
resources :media
感谢您的帮助!
答
在我看来,你应该读一点,但有关路由及其部分在Rails的宏伟计划中
您可以从这里开始 http://guides.rubyonrails.org/routing.html
您也可以看一些RailCast为了全面掌握线路 的意义这是一个有点棘手,但是当你了解它,它完全意义
如果你想在“地图”的链接去到特定地图,你应该改变
<%= link_to "Map", :controller => :maps, :action => :map %>
要
<%= link_to "Map", @map %>
哪里@map是地图,你初始的变量lized控制器
如果你想在“地图”链接,进入地图索引页面,并显示所有的地图,你应该改变
<%= link_to "Map", :controller => :maps, :action => :map %>
要
<%= link_to "Map", maps_path %>
答
嗯,这是多么的REST资源和URL的定义。阅读here
做你routes.rb
文件中的以下时间:
resource :maps
你告诉轨生成缺省路由为您提供以下操作:
- 指数=>
GET /maps
- show =>
GET /maps/1
- new =>
GET /maps/new
- 创建=>
POST /maps
- 编辑=>
GET /maps/1
- 更新=>
PUT /maps/1
- 破坏=>
DELETE /maps/1
2个语句:1 )为什么不使用'_url'或'_path'辅助方法来生成链接? 2)你正在链接到诸如'map'和'experience'之类的行为,这些行为在你的路线中没有定义。 –
谢谢!不知道那些帮手。我不完全确定那里的地图和体验如何保持诚实。看来我有地图和地图? – DynastySS