You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ramaze框架默认HTML页面无内容显示,请求技术协助

解决Ramaze框架Index页面无内容显示的问题

核心问题分析

你的MainController的index动作仅设置了@title变量,但未提供可渲染的内容——Ramaze默认需要对应动作的视图文件,或在动作里直接返回内容,否则@content会是空值,导致布局中无内容输出。

具体修复方案

方案1:添加对应视图文件

在项目默认视图目录views/main/下创建index.html(或匹配模板引擎的扩展名文件),写入需要显示的内容,示例:

<h1><%= @title %></h1>
<p>这是首页的测试内容</p>

Ramaze会自动将该视图内容赋值给@content,并渲染到布局中。

方案2:在动作中直接返回内容

修改MainController的index动作,直接返回HTML内容,@content会被自动填充:

class MainController < Controller
  def index
    @title = 'Welcome to Ramaze!'
    "<h1>#{@title}</h1><p>直接返回的首页内容</p>"
  end
end

方案3:确认布局文件的位置与命名

确保布局文件放在默认的layouts/目录下,若使用自定义布局,需在控制器中指定。比如布局文件为layouts/content.html,控制器需添加:

class MainController < Controller
  layout :content
  def index
    @title = 'Welcome to Ramaze!'
  end
end

额外检查点

  • 确认视图文件扩展名与使用的模板引擎匹配(Ramaze默认支持Erubis,.html或.erb均可)
  • 检查项目目录结构是否符合Ramaze默认规范:
    项目根目录/
    ├── controllers/
    │   └── main.rb
    ├── views/
    │   └── main/
    │       └── index.html
    └── layouts/
        └── default.html
    

内容的提问来源于stack exchange,提问作者aaaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 02:19:54