2009-11-16 148 views
1

我遇到了问题,关于在轨道上的红宝石的意见。Ruby on Rails视图问题(rhml/html.erb)

基本上我有一个常规项目,其中列出它加载内index.html.erb

发现现在的代码细节上

http://localhost:3000/stores/就好了,我有棚架等全部到位,但是当我尝试加载

http://localhost:3000/stores/search应从search.rhtml加载代码(应该将其改为.html.erb或它不有所作为?),其简单地将文件show.html.erb并显示代码代替(其由于PR导致错误没有被传递等操作)。

我想知道我在做什么错,我应该在routes.rb文件中设置一些东西? (如果这有什么关系的问题?)

ActionController::Routing::Routes.draw do |map| 
    map.resources :stores 
    map.resources :stores 

    map.connect ':controller/:action/:id' 
    map.connect ':controller/:action/:id.:format' 
end 

非常感谢先进的任何援助,因为这是我的第一个Ruby on Rails项目

回答

2

如果你想添加你想设置一个搜索行动你的路由文件是这样的:

ActionController::Routing::Routes.draw do |map| 
    map.resources :stores, :collection => { :search => :get } 

    map.connect ':controller/:action/:id' 
    map.connect ':controller/:action/:id.:format' 
end 

我要坚持命名文件search.html.erb虽然search.rhtml也能工作。这是一个good guide for routing在轨道和here's the section专门适用于此答案。

+0

感谢这工作得很好! – Erika 2009-11-16 22:34:55

0

试图回答每一个问题:

  1. 您有一个副本map.resources :stores,一个就足够了。

  2. 是的你是正确的http://localhost:3000/stores/search将加载search.html.erb(更好地命名它遵循公约的方式)(我没有看到你的控制器的代码,但正如你在学习rails的过程中我看到的那样假设你没有用respond_to调整控制器动作)

  3. 它不应该进入show.html.erb视图。你能告诉我们你的StoresController吗?