【问题标题】:Rails on iOS - action "show" could not be found on :method => :deleteiOS 上的 Rails - 在 :method => :delete 上找不到动作“show”
【发布时间】:2011-09-29 17:34:56
【问题描述】:

我有一个 Rails 应用程序,它为 iOS 用户提供移动视图。

所有链接似乎都在工作,除了那些帖子与 rails :delete 方法相关联的链接。一个示例链接到:

<%= 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 目标一样。

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 你是男人中的神。非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 2012-03-14
    • 1970-01-01
    相关资源
    最近更新 更多