【发布时间】:2011-12-29 04:57:45
【问题描述】:
我在 Rails 中遇到了一些路由问题。
我已经为Project 模型准备好了模型,所以我使用rails generate scaffold_controller 生成了一些默认控制器和视图,例如rails generate scaffold_controller Project。正如预期的那样,我现在有了一个默认控制器和相关的视图。
我的 routes.rb 文件包含:
resources :projects
当我尝试在浏览器中加载 /projects/1 时,我收到 MissingTemplate 错误。这是来自 rails 服务器终端的转储:
Started GET "/projects/1/" for 127.0.0.1 at 2011-11-14 19:39:47 -0800
Project Load (0.3ms) SELECT `projects`.* FROM `projects` WHERE `projects`.`id` = 1 LIMIT 1
ActionView::MissingTemplate (Missing template projects/show, application/show with {:handlers=>[:erb, :builder], :formats=>[:html], :locale=>[:en, :en]}. Searched in:
):
app/controllers/projects_controller.rb:18:in `show'
这些是脚手架控制器/视图,因此 /app/views/projects/show.html.erb 等文件已经到位。我做错了什么?我是一个小菜鸟,所以任何提示都值得赞赏:)
编辑:项目内容#show
# GET /projects/1
# GET /projects/1.json
def show
@project = Project.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @project }
end
end
【问题讨论】:
-
在 app/controllers/projects_controller.rb 中显示您的“显示”操作
-
@IgorKapkov 查看编辑
-
试试
rake routes并找到你的路线,/projects工作正常吗? -
默认情况下,错误消息的“搜索范围:”部分应指向您的视图文件夹,而不是像您的情况那样为空。恐怕我真的不知道是什么原因造成的。
-
@RB 你找到解决方案了吗?我面临同样的问题。如果您能分享解决方案,我将不胜感激。
标签: ruby ruby-on-rails-3 url-routing actionview rails-routing