2012-09-17 112 views
0

我在我的Rails應用程序(https://github.com/jejacks0n/mercury.git,8fd7f73029)中使用了Mercury wysiwyg編輯器,我無法處理它以保存文章更改時發生錯誤「Mercury無法保存到網址」。谷歌控制檯提供了以下日誌:Mercury編輯器無法保存更改

ailed to load resource: the server responded with a status of 404 (Not Found) http://localhost:3000/articles/3/mercury_update 
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:3000/articles/3/mercury_update 
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:3000/articles/3/mercury_update 
PUT http://localhost:3000/articles/3/mercury_update 404 (Not Found) jquery-1.7.js:8158 

的routes.rb

mount Mercury::Engine => '/' 
resources :articles do 
member { post :mercury_update } 
end 

mercury.js代碼之後調試插入:假

onload: function() { 
    //Mercury.PageEditor.prototype.iframeSrc = function(url) { return '/testing'; } 
    Mercury.on('ready', function() { 
    var link = $('#mercury_iframe').contents().find('#edit_link'); 
    Mercury.saveUrl = link.data('save-url'); 
    link.hide(); 
    }); 

    Mercury.on('saved', function() { 
    window.location.href = window.location.href.replace(/\/editor\//i, '/'); 
    }); 
}, 

表演。 html.erb

<span data-mercury="full" id="page_title"><%= raw @article.title %></span> 
<div data-mercury="full" id="page_body"><%= raw @article.body %></div> 

<%= link_to "Edit", "/editor" + request.path, id: "edit_link", data: {save_url: mercury_update_article_path(@article)} %> 

articles_controller.rb

def mercury_update 
    article = Article.find(params[:id]) 
    article.title = params[:content][:page_title][:value] 
    article.body = params[:content][:page_body][:value] 
    article.save! 
    render text: "" 
end 

在佈局文件mercury.html.erb

<script type="text/javascript"> 
    // Set to the url that you want to save any given page to, leave null for default handling. 
    var saveUrl = null; 

    // Instantiate the PageEditor 
    new Mercury.PageEditor(saveUrl, { 
    saveStyle: 'form', // 'form', or 'json' (default json) 
    saveMethod: null, // 'PUT', or 'POST', (create, vs. update -- default PUT) 
    visible: true // boolean - if the interface should start visible or not 
    }); 
</script> 

我什麼都試過,但沒有任何工程

回答

0

簡單錯字佈局我有條件呈現div id =「page_title」,所以有兩個標籤,並忘記在第二種情況下包含id =「page_title」