【发布时间】: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