Rails 应用看不到我的视图
Posted
技术标签:
【中文标题】Rails 应用看不到我的视图【英文标题】:Rails app doesn't see my views 【发布时间】:2011-05-27 01:23:34 【问题描述】:我现在在轨道上已经有一段时间了,这是我一直遇到的问题:
当我通过以下方式创建控制器时:
“rails 生成控制器 ControllerName ViewName”
我让一切都按我的意愿工作,但如果出于某种原因我通过以下方式创建控制器:
“rails 生成控制器ControllerName”
然后只需将 ViewName.html.erb 添加到与我的控制器同名的视图内的文件夹中,就会出错。 所以具体案例是我写的:
rails 生成控制器主题列表显示。
为我创造:
1.controllers>subjects_controller.rb
2.views>subjects>list.html.erb
3.views>subjects>show.html.erb
所以整个事情都很好。但正如我已经说过的,如果我需要另一个视图;假设“新”我只是在其他 *.html.erb 文件旁边添加“new.html.erb”和一个动作:
定义新
结束
到我的 subjects_controller.rb 然后它就行不通了。 前两个视图会继续工作,但在命令行之外创建的任何其他“*html.erb”都不会。
还有其他地方存储有关视图的信息吗?
我是 Windows 7 用户(32 位)。Rails 版本=3.0.3。 WebServer=WEBrick。 文本编辑器 = E-TextEditor
【问题讨论】:
【参考方案1】:这很可能是由于您的路线配置不正确造成的。所以看看你的路线的内容会很有帮助。rb
在您的情况下,我认为配置路由的最佳方法是使用资源映射:
resources :subjects
默认情况下,这将为标准 RESTful 操作创建路由:index、:show、:edit、:update、:new、:create 和 :destroy。
有关路由的更多详细信息,我会推荐Rails Routing from the Outside In
【讨论】:
我发现在文件 routes.rb 中最后一行 "match ':controller(/:action(/:id(.:format)))'" 应该被取消注释以便应用程序将控制器与其操作正确关联 我建议你不要这样做。不鼓励这种包罗万象的路线。通过指定资源和匹配来更好地控制您的路线。以上是关于Rails 应用看不到我的视图的主要内容,如果未能解决你的问题,请参考以下文章