基本的に、私はIndex.html.erbのRailsに表示される1ページのTODOAPPを持っています。それらがそれぞれレールアシスタントからの信頼性トークンを必要とするフォームを持っているので、index.js.erbを介してTODOオブジェクトをインスタンス化します。 TODOをJavascriptで/からレンダリングする必要があります。Ajax Authenticity Tokenを使用して、RailsのIndex.js.erbからIndex.html.erbへのレンダリングに問題があります。
私の解決策は、Index.html.erbビューにtodosを追加することでした。インデックスのレンダリング "index.js.erb"を設定し、ルビーでレンダリングしてから実行する部分を呼び出しました( '< %= j render 'index.html.erb'%>)。しかし、これは_indexの部分的な部分を予期し、index.js.erbに直接何かを追加または実行しようとすると、そのページ自体がレンダリングされます。
もちろん、これはルーティングの問題だと私は理解していますが、TODOオブジェクトをJSを介して/からJSにレンダリングして、それがラップされている形式で本物のトークンを追加することはできません.jsファイル内のdomからjqueryまでの形式では、トークンを含めることはできません。
この時点で私はオンライン検索とYouTubeビデオを使い果たしてしまったため、可能性のある洞察ができて本当に感謝しています。私のインデックスのコントローラのアクションは次のとおりです。
def index
@todo = Todo.new
@todos = Todo.all
respond_to do |format|
format.html { render 'index.js.erb' }
format.json { render :json => @todos }
format.js { render 'form.js.erb' }
end
end
そして、GitHubのレポは次のとおりです。https://github.com/jwolfe890/todoapp/blob/master/app/assets/javascripts/todo.js
は、任意の洞察力のために非常にありがとうございます!
私は当初ことを試してみましたが、それがインデックスへのAJAX呼び出しのために動作しますが、それは私ができるようになる唯一の方法ですので、私は部分的にERBを通じてDOMにそれらのオブジェクト(またはオブジェクトをレール)を追加する方法が必要です真正性トークンを自動的に生成する。私はレイアウトメタタグを通して実行可能な回避策があると思うが、私は.html.erbに加えてindex.js.erbを走らせることができない。 – Dog
あなたはどこでトークンの問題に直面していますか? todoを編集してそれがうまくいけば、PUTリクエストだけが動作しませんでした。 –
基本的にはput。私はTODOに機能を追加してストライクのように追加し、put要求を行う必要があるためです。 – Dog