Ruby on Rails视图问题(rhml / html.erb)

时间:2009-11-16 22:18:18

标签: ruby-on-rails

我在使用rails上的ruby中遇到问题。

基本上我有一个常规项目,可以在

上列出详细信息

http://localhost:3000/stores/加载index.html.erb

中的代码

现在,我已经将脚手架等安装到位,但是当我尝试加载时

http://localhost:3000/stores/search它应该从search.rhtml加载代码(如果这个代码改为.html.erb或它没有什么区别?),它只是转到文件show.html.erb并显示而是代码(由于未传递属性导致错误等)。

我想知道我做错了什么,我应该在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 个答案:

答案 0 :(得分: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 in rails和here's the section,特别适用于此答案。

答案 1 :(得分:0)

尝试回答每个问题:

  1. 您有一个重复的map.resources :stores,一个就够了。

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

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