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 应用看不到我的视图的主要内容,如果未能解决你的问题,请参考以下文章

Rails 3.1 和 Coffeescript 出现“找不到变量”错误

Rails 找不到我的部分。缺少部分错误

为啥 Rails 找不到我的资产?

在 Rails 4 生产环境中找不到资产的 404 错误

Rails 看不到环境变量

Rails:用按钮隐藏记录,找不到ID错误的记录