关于路由的问题

时间:2011-08-19 15:30:49

标签: ruby-on-rails url-routing rails-routing

我想阅读我桌子的所有记录。这是我的代码

控制器:

def list
    @vorlesung=Vorlesung.find(:all)
  end

查看:

<html>
<body>
  <table>
     <tr>
       <th>
         Name
       </th>
     </tr>
    <% @vorlesung.each do |v| %>
     <tr>
       <td><%= v.Name %> </td>
     </tr>
    <% end %>
  </table>

</body>

</html>

和路径文件:

root :to => 'vorlesungs#Show'
  match 'vorlesungs/new' =>'vorlesungs#new'
  match 'vorlesungs' =>'vorlesungs#list'
 resources :vorlesungs

正如我对CRUD所理解的那样,我只能写出资源:vorlesungs 。但是如果没有匹配'vorlesungs'=&gt;'vorlesungs#list'我的代码是行不通的。请问有人告诉我这个原因吗?

2 个答案:

答案 0 :(得分:1)

列表不是资源创建的默认资源。查看下面链接中的表格,查看使用资源方法创建的路径所使用的所有操作。

http://guides.rubyonrails.org/routing.html#resources-on-the-web

您应该保留在路线中或重命名列表以进行索引(包括视图中的list.html.erb)。我建议将列表重命名为index以避免破坏约定。

答案 1 :(得分:0)

用于列出资源的所有元素的CRUD操作是索引,因此如果您将代码更改为

def index
    @vorlesung=Vorlesung.find(:all)
end

并将您的视图重命名为index,然后您就可以使用

resources :vorlesung