【问题标题】:rails 3.1 mountable engines HTTP 404 Error on ajax post callrails 3.1可安装引擎在ajax post调用时出现HTTP 404错误
【发布时间】:2012-01-15 08:01:14
【问题描述】:

我正在构建我的第一个 Rails 3.1 引擎插件,其中我有一个名为 Initiatives_controller 的控制器,并且每当我尝试通过 jquery ajax “post”调用上传操作时,我觉得它返回了 404 错误。 routes.rb 中存在一些问题,因为它使用了 Rails 3.0 中的工作

我的 routes.rb 看起来像

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

我的倡议_controller.rb

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调用

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

         });      

结束

【问题讨论】:

    标签: ruby-on-rails-3 jquery ruby-on-rails-plugins rails-engines


    【解决方案1】:

    您的虚拟应用程序可能安装在“/marcal”上,这是您创建可安装引擎时的默认设置。您的 ajax 可能并不简单,因为它在“/initiatives/upload”而不是所需的“/marcal/initiatives/upload”上发送 POST。 p>

    您可能希望将您的 javascript 文件从“name.js”重命名为“name.js.erb”并将其内容更改为:

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

    root_path 是这里的关键。

    【讨论】:

      猜你喜欢
      • 2011-11-17
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      相关资源
      最近更新 更多