我在使用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项目
答案 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)
尝试回答每个问题:
您有一个重复的map.resources :stores
,一个就够了。
是的,你是正确的http://localhost:3000/stores/search
将加载search.html.erb(更好地命名它以遵循圣约)(我没有看到你的控制器的代码,但你似乎在学习rails的过程我假设你没有使用respond_to调整控制器动作
它不应该转到show.html.erb视图。你能告诉我们你的StoresController吗?