iOS上的Rails - 无法找到操作“show”:method => :删除

时间:2011-09-29 17:34:56

标签: javascript ruby-on-rails ios ruby-on-rails-3 mobile-safari

我有一个Rails应用程序,它具有适用于iOS用户的移动视图。

所有链接似乎都在工作,除了那些帖子绑定到rails:delete方法。一个例子link_to:

<%= link_to list_task_path(t.list, t), :method => :delete do %>
      <%= image_tag "white_minus.png", :id => "complete_task", :class => "#{important_class?(t)} icon", :title => "Complete Task", :alt => "Complete Task" %>
      <% end %>

在移动版Safari上按下此链接时,会返回以下错误:无法找到操作“show”...

我尝试将链接转换为ajax链接,看看问题是否正确,没有雪茄:

$(function() {
  $("#complete_task a").click(function() {
    $.post(this.href, { _method: 'delete' }, null, "script");
    return false;
  });  
});

我认为这个问题与我正在使用的javascript有关,尽管不能完全理解,如果网站已添加到用户主屏幕,则阻止链接在移动Safari中打开。这是我的另一个问题的复制意大利面:

// open links in app and not safari

var iWebkit;if(!iWebkit){iWebkit=window.onload=function(){function fullscreen(){var a=document.getElementsByTagName("a");for(var i=0;i<a.length;i++){if(a[i].className.match("noeffect")){}else{a[i].onclick=function(){window.location=this.getAttribute("href");return false}}}}function hideURLbar(){window.scrollTo(0,0.9)}iWebkit.init=function(){fullscreen();hideURLbar()};iWebkit.init()}}

删除此javascript允许我执行删除操作,但所有其他链接都在外部打开,就像它们是_blank目标一样。

我想知道是否有其他人遇到类似情况,并且能够纠正在移动游猎中运行的Rails 3上的破坏链接。

1 个答案:

答案 0 :(得分:1)

如果我正确阅读此脚本,则应将类noeffect添加到链接中。这可以防止脚本的默认行为,即将window.location设置为锚点的href