2

Rails 3.0.3 と Heroku の使用

Heroku アプリのフォーム投稿で InvalidAuthenticityToken のようなエラーが発生します。私のアプリケーションコントローラーでは、protect_from_forgery を有効にしています。

class ApplicationController < ActionController::Base
  protect_from_forgery
  ...
end

私の検索フォーム

<%= form_tag(searchresults_url) do %>
  <%= text_field_tag :search_query, '', :size => 14 %> <%= submit_tag (t :search) %>
<% end %>

ルート:

match 'searchresults' => 'home#searchresults', :as  => :searchresults

class HomeController < ApplicationController


  def searchresults

    @query = query_string
        @entries_found = Counter.where(...)     

  end


end

無効なトークン エラーは、誰かが私の検索フォームから Web サイトを検索しようとしたときに、Cookie を無効にしてスマートフォンを使用しているときに発生します。Cookie を無効にした Web ブラウザー (Firefox) で Web サイトにアクセスしようとしましたが、問題なく動作しました。

私が作成した「検索エンジン」でこの動作が得られない (このアプリでは使用できない方法で) ので、何が問題なのですか? スマートフォンと Cookie だけが無効になっているのはなぜですか?

これを機能させるにはどうすればよいですか?

4

1 に答える 1

0

これに対する迅速で汚い「解決策」は、追加することでした

protect_from_forgery :only => [:create, :update, :destroy]

関連するコントローラー用。これがウェブサイトにどのようなリスクをもたらすかはわかりませんが...

于 2012-10-03T10:16:37.377 に答える