7

在我的应用程序中,我将 HTML 的输入保存为“页面”,如下所示:

def create
  @page = Page.new(page_params)
  @page.unique = loop do
     random_unique = SecureRandom.urlsafe_base64(4)
     break random_unique unless Page.where(unique: random_unique).exists?
   end

  @page.save
  redirect_to "/#{@page.unique}"
end

但是如果你在标签中包含功能,它会说它已经呈现了页面,但实际上它什么也没返回,URL 栏显示“数据:”

奇怪的是,如果你找到了@page.unique,然后访问它,例如 localhost:3000/SKkFrA,页面就会很好地呈现。

有什么建议么?

ps 这是我正在使用的 show 方法:

def show
  @page = Page.find_by(unique: params[:id])
  render :text => @page.html
end
4

2 回答 2

2

我在 IRC 上找到了答案。

这是一项安全功能,新页面的 HTML 内容与 Chrome 阻止的提交表单的 HTML 内容相匹配。

于 2013-09-04T18:06:48.283 回答
0

问题是由 OP 提到的原因引起的 - “这是一项安全功能,新页面的 HTML 内容与 Chrome 阻止的提交表单的 HTML 内容相匹配”。

我的解决方案是不再显示页面上的 html 数据。我可以摆脱这个,因为我的实例是一个后端应用程序,它不需要 html 可见,只需要在数据库中。

于 2015-07-08T12:46:34.250 回答