1

REST APIとjsonを使用してrails3サーバーと通信するPhoneGapモバイルアプリに取り組んでいます。認証はデバイス 2.0.4 を使用して行われます。私自身のコントローラーの場合、Rails が json をコールバックでラップして、クロスドメインの問題を次のように処理するように指定できます。

respond_to do |format|
      format.html # index.html.erb
      format.json { render :json => @books, :callback => params[:callback] }
end

次の点に注意してください。

:callback => params[:callback]

デバイスコントローラーではそれを行うことができません。js リクエストに応答するようにデバイスを取得するにはどうすればよいですか? つまり、コールバックを使用した json ですか?

どうもありがとう、

アリエル

4

1 に答える 1

0

レンダラーに :callback パラメータを提供するか、何らかの方法で before_filter を使用して、devise コントローラをオーバーライドする方がよいでしょう。そのためには、devise コントローラーを github/local-gem-directory からアプリにコピーしてから編集します。しかし、アクションごとに JS ビューを定義する方がはるかに簡単です。

まだ行っていない場合は、devise ビューの生成から始めます (これは必須ではありませんが、アイデアを得るのに役立ちます)。

rails g device:views -s

フォルダ内に多くの*.html.erbファイルが生成されapp/views/deviseます。*.js.erb次の内容で、それらの隣に適切なものを作成する必要があります。

<%=render :inline => params[:callback]+'('+resource.to_json+')'%>

PS:実際には、その行を入れてapp/views/application.js.erb、他のステップをスキップすることができます;)

于 2012-11-21T10:34:33.100 に答える