0

Mercury Editor(https://github.com/jejacks0n/mercury)を使用して、RoRアプリケーションのブログ領域の投稿を編集したいと思います。Pagesモデルはありません。サイトのすべてのページではなく、投稿を編集したいだけです。

私のroutes.rbで:

resources :posts do
    member { post :mercury_update }
end

私のposts_controller.rbで:

def mercury_update
    post = Post.find(params[:id])
    post.name = params[:content][:page_name][:value]
    post.content = params[:content][:page_content][:value]
    post.save!
    render text: ""
end

そしてまたしました:

$(window).bind('mercury:ready', function() {
  var link = $('#mercury_iframe').contents().find('#edit_link');
  Mercury.saveURL = link.data('save-url');
  link.hide();
});

$(window).bind('mercury:saved', function() {
  window.location = window.location.href.replace(/\/editor\//i, '/');
});

そして、mercury.html.erbの保存スタイルを「form」に変更しました。

これらの手順を実行しても、テスト投稿に変更を保存しようとすると、このエラーが何度も発生します。

Mercuryは次のURLに保存できませんでした:http:// localhost:3000 / blog / test

4

2 に答える 2

2

javascriptがロードされない場合にも同じ問題が発生しました。onload領域内の/app/assets/javascript/mercury.jsにjavascriptオーバーライドを配置することを検討することをお勧めします。これが私のものです:

onload: function() {
$(window).bind('mercury:ready', function() {
  var link = $('#mercury_iframe').contents().find('#edit_link');
  Mercury.saveURL = link.data('save-url');
  link.hide();
});
},

別のオプションは、次のように、ファイル/app/assets/javascript/mercury_override.js内にオーバーライドコードを配置することです。

$(window).bind('mercury:ready', function() {
  var link = $('#mercury_iframe').contents().find('#edit_link');
  Mercury.saveURL = link.data('save-url');
  link.hide();
});

2番目の解決策は、水銀の更新から適用された更新によって影響を受けないため、より良い解決策だと思います。

于 2012-03-22T16:03:59.760 に答える
1

Mercury.saveUrl = link.data('save-url');

于 2012-09-02T13:17:03.340 に答える