相关疑难解决方法(0)

在Rails link_to中使用turbolinks

只是想知道是否有一种方法可以直接在rails link_to帮助器中使用turbolinks,快速的谷歌搜索没有发现任何注意事项,这是我试图无济于事的类型.

<%= link_to 'Giraffe', giraffe_path(@giraffe), :data-no-turbolink => 'true' %>
<%= link_to 'Giraffe', giraffe_path(@giraffe), :data { :no-turbolink => 'true'} %>
Run Code Online (Sandbox Code Playgroud)

我知道你可以在这样的常规链接中做到这一点

<a data-no-turbolink='true' href="/giraffe-130">Giraffe</a>
Run Code Online (Sandbox Code Playgroud)

现在我只是将属性包含在链接周围的元素上,例如lis或div.

提前致谢.

ruby-on-rails-3.2 turbolinks ruby-on-rails-4

40
推荐指数
4
解决办法
3万
查看次数

Rails 4:coffeescript仅在有帖子请求或重新加载页面时才有效

我主要是一个后端开发人员,并且在javascript相关的东西(以及该地方存在的所有框架的星系)方面都不是很熟练.我知道这很糟糕,但事实就是如此.

我对自己的问题变得疯狂,我可能会遗漏一些非常基本的东西.我做了一些研究(谷歌+堆栈溢出圣经),并没有发现任何类似于我的问题的案例.我想我只是不知道自己在做什么.让我解释.

发生了什么

我正在使用Rails 4进行小型(无用)项目,我尝试在coffeescript文件中编写一些javascript"代码".

显然,我写的coffeescript"代码"仅在我重新加载页面时或在POST请求之后(例如,当您提交表单时).根据GET请求,例如,在从页面到页面的导航期间,没有任何事情发生.

我尝试了一个非常简单的基本101级测试:在页面上显示一条警告信息(Hello!)(它首先包括一个日期选择器).

假设我有一个Article模型,并且与ArticlesController编辑/创建/删除数据相关联.我有以下文件:

app/assets/javascripts/application.js
app/assets/javascripts/articles.js.coffeee
app/controllers/articles_controller.rb 
app/models/article.rb
app/views/articles/new.html.erb 
app/views/articles/index.html.erb 
etc.
Run Code Online (Sandbox Code Playgroud)

我只是在添加一行app/assets/javascripts/articles.js.coffee:

alert "Hello!"
Run Code Online (Sandbox Code Playgroud)

如果我提交表单或重新加载页面,我会看到警告"你好!".如果我只是点击链接,例如编辑文章,则不会发生任何事情.

日志

当我在两种情况下查看rails日志时,我有两种不同的场景:

在"它不工作"的情况下,当我做一个简单的get请求(通过点击编辑链接)时,我在日志中有这个:

Started GET "/articles/1/edit" for 127.0.0.1 at 2013-09-17 14:35:28 -0400
Processing by ArticlesController#edit as HTML
  Parameters: {"id"=>"1"}
  Author Load (0.3ms)  SELECT "authors".* FROM "authors" WHERE "authors"."remember_token" = 'ab6fa1c5257585de99459c60f24121c' LIMIT 1
  Article Load (0.2ms)  SELECT "articles".* FROM "articles" WHERE "articles"."author_id" = ? AND "articles"."id" = 1 …
Run Code Online (Sandbox Code Playgroud)

javascript ruby-on-rails coffeescript ruby-on-rails-4

9
推荐指数
1
解决办法
8452
查看次数

在 Rails 5 中使用 sortable.js 和turbolinks

我有一个 Rails 5.1 应用程序,其中使用https://www.kryogenix.org/code/browser/sorttable/中的sortable.js库来对表进行一些简单的客户端排序。

我遇到一个问题,当页面首次加载时,表排序不起作用。(它根本没有响应。)如果您随后手动重新加载页面(cmd-R 或等效命令),那么它就会起作用。

经过一番搜索,我认为问题是由 Turbolinks 引起的。像这样的帖子,以及其他人建议如何修改 JS 代码来解决它: Rails javascript 仅在重新加载后才起作用

要引用该页面上的答案,您必须通过执行以下操作告诉 Turbolinks 进行加载:

document.addEventListener("turbolinks:load", function() {
  my_func();
})
Run Code Online (Sandbox Code Playgroud)

然而,我不是 JS 专家,所以有点讨厌在 sortable.js 代码中过多地胡闹。我正在寻求以侵入性最小的方式解决问题的帮助。

javascript ruby-on-rails turbolinks

4
推荐指数
1
解决办法
589
查看次数

Google地图仅在"刷新"后加载

我的Rails 4应用程序运行咖啡脚本来绘制谷歌地图.乍一看,它似乎不起作用.但是,当我点击浏览器刷新按钮时,地图会像冠军一样加载.这已经过测试,并且正在发生:

  • 移动Safari(iOS7)
  • 桌面Safari(OSX)
  • Chrome(OSX)
  • Chrome(Windows 7)

来自application.html.erb的标题

<head>
    <!-- Boilerplate -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width">
    <%= stylesheet_link_tag "normalize.min.css" %>
    <%= stylesheet_link_tag "main.css" %>
    <%= javascript_include_tag "vendor/modernizr-2.6.2-respond-1.1.0.min.js" %>

    <!-- Icon Font -->
    <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">

    <!-- Google Maps API -->
    <%= javascript_include_tag "https://maps.googleapis.com/maps/api/js?key=*********&sensor=true" %>

    <!-- Rails -->
    <%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
    <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
    <%= csrf_meta_tags %>

    <link href='http://fonts.googleapis.com/css?family=Droid+Sans|Lobster' rel='stylesheet' type='text/css'>
</head>
Run Code Online (Sandbox Code Playgroud)

的application.js

// …
Run Code Online (Sandbox Code Playgroud)

javascript google-maps ruby-on-rails coffeescript

1
推荐指数
1
解决办法
4631
查看次数