1

AJAX 呼び出しへの応答として、コントローラーから JavaScript 行を実行しようとしています。

respond_to do |format|
  if params[:return_to] == 'monthly_calendar'
    render js: "alert('hey Trip!');"
  else
    format.js   { render :partial => @task, layout: false }
    format.html { redirect_to things_url }
    format.json { render :json => @object.to_json }
    format.xml do
      if @task.new_record?
        render :xml => @task.errors.to_xml
      else
        render :xml => @task.to_xml, :status => '201 Created'
      end
    end
  end

代わりに、これは 406 を返します。

このステートメントの正しい呼び出しに間違いなく行きます。しかし、javascript 呼び出しで何をすべきかわからず、406 を返します。

4

3 に答える 3

3

これに変更

respond_to do |format|
   if params[:return_to] == 'monthly_calendar'
      format.js { render js: "alert('hey Trip!');" }
   else
  .....

応答する形式を指定していないためです。たとえば、format.html { #your code here } when params[:return_to] == 'monthly_calendar' のようになります。詳細については、 respond_toのドキュメントを確認してください。

于 2012-06-11T13:55:45.947 に答える