0

私は最初のRails 3.1エンジンプラグインをビルドしています。コントローラにはinitiatives_controllerという名前のコントローラがあり、jquery ajax経由でアップロードアクションを呼び出そうとすると、 「ポスト」私はそれが私のroutes.rbをがrails 3.1マウント可能なエンジンajaxのポストコールでHTTP 404エラー

Marcal::Engine.routes.draw do 
    resources :media 
    resources :initiatives 
    post "initiatives/upload" 
end 

マイinitiatives_controller.rb

のように見えます

レールに3.0

を仕事に使用しているためroutes.rbを中にいくつかの問題があると感じては私に404エラーを返す呼び出し
class InitiativesController < ApplicationController 
    def upload 
    puts "hiiiii" 
    @medium = Medium.new(params[:medium]) 
    if @medium.save 
     render :json => { 'status' => 'success' } 
    else 
     render :json => { 'status' => 'error' } 
    end 
    end 

エンド エンド

と私はあなたがマウントエンジンを作成するときに

  $.ajax({ 
      url: "/initiatives/upload", 
      type: "POST", 
      data: "medium=something" 
      dataType: "json", 
      success: function(sucessdata) 
      { 
       alert("success"); 
      } 

     });  

以下エンドとしてAJAX呼び出しを行う

+0

あなたはそれを解決しましたか? – jipiboily

答えて

0

あなたのダミーアプリはおそらくデフォルトである「/ marcal」に搭載されている使用。 「/initiatives/upload」のPOSTを希望の「/marcal/initiatives/upload」の代わりに送信するため、あなたはおそらく単純ではありません。

あなたは「name.js」を「name.js.erb」からあなたのjavascriptファイルの名前を変更し、それはへのコンテンツです変更する場合があります

$.ajax({ 
    url: "<%= root_path %>initiatives/upload", 
    type: "POST", 
    data: "medium=something" 
    dataType: "json", 
    success: function(sucessdata) 
    { 
    alert("success"); 
    } 
}); 

のroot_pathはここで重要です。

関連する問題