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 

感谢您的帮助!

+0

2个语句:1 )为什么不使用'_url'或'_path'辅助方法来生成链接? 2)你正在链接到诸如'map'和'experience'之类的行为,这些行为在你的路线中没有定义。 –

+0

谢谢!不知道那些帮手。我不完全确定那里的地图和体验如何保持诚实。看来我有地图和地图? – DynastySS

在我看来,你应该读一点,但有关路由及其部分在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 %> 
+0

谢谢!当我更改为我看到我的网址按我想要的方式工作。唯一的问题是我正在获取未初始化的常量MapsController :: Map。我不完全确定为什么,或者... – DynastySS

+0

1.您是否在MapsController中定义了一个索引方法?在这种方法中,你应该选择你想要在索引视图中显示的所有地图 - 例如把它放在一个名为'@maps'的变量中2.你应该在views \ maps文件夹下定义index.html.erb视图文件并且与这个'@maps'变量相关 – obenda

嗯,这是多么的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