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 バーには「data:」と表示されます。

奇妙なことに、@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を表示する必要がなく、dbにあるだけでよいバックエンドアプリであるため、これでうまくいく可能性があります。

于 2015-07-08T12:46:34.250 に答える