0

我的控制器中有一些非常简单的东西:

def show
    @group = Group.find(params[:id])
    render :text => @group.inspect
end

我知道@group 存在,因为如果我将它发送到查看(通过注释掉第三行),它会正确显示所有内容。但是,当我包含该渲染文本行时,我只得到一个“#”,没有别的。我究竟做错了什么?

4

1 回答 1

2

如果您查看页面的源代码,它会正确呈现。问题是输出是这样的:

#<Group id: 123, ...>

浏览器需要 HTML,所以当它看到左括号时,它认为它是一个 HTML 标记(但它实际上不是有效的 HTML)。

相反,您可以尝试先转义 HTML:

render :text => CGI.escapeHTML(@group.inspect)

这将替换<&lt;等,正确显示您的期望。

于 2013-07-29T17:27:40.017 回答