我想使用水星编辑器(https://github.com/jejacks0n/mercury)在我的RoR应用程序的博客区域编辑文章。我没有任何网页模型,我只是想编辑文章,而不是所有网站的网页。
在我的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中将保存样式更改为“窗体”。
即使按照这些步骤,当我试图在测试帖子中保存更改时,也会一次又一次地得到这个错误:
水星无法保存到url:http://localhost:3000/blog/test
发布于 2012-03-22 16:03:59
在没有加载javascript时,我也遇到了同样的问题。我建议将javascript重写放在onload区域内的/app/assets/javascript/mercury.js中。下面是我的照片:
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/so_override.js中,如下所示:
$(window).bind('mercury:ready', function() {
var link = $('#mercury_iframe').contents().find('#edit_link');
Mercury.saveURL = link.data('save-url');
link.hide();
});我认为第二个解决方案更好,因为从汞更新中应用的任何更新都不会触及这一点。
发布于 2012-09-02 13:17:03
Mercury.saveUrl = link.data('save-url');
https://stackoverflow.com/questions/8725004
复制相似问题