我收到以下错误:
ExecJS::RuntimeError in Devise::Sessions#new
Showing C:/Users/me/RubymineProjects/my_project/app/views/layouts/application.html.erb where line #6 raised:
(in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/turbolinks-1.1.1/lib/assets/javascripts/turbolinks.js.coffee)
Extracted source (around line #6):
3 <head>
4 <title>HourlyTracker</title>
5 <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
6 <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
7 <%= csrf_meta_tags %>
8 </head>
9 <body>
Run Code Online (Sandbox Code Playgroud)
我正在使用Devise的3.0.0rc版本,它应该与Ruby 2.0和Rails 4.0rc1一起使用.我在Windows x64上.
我按照Rails指南的入门部分,welcome按照教程创建了控制器.我启动了服务器并打开了http://localhost:3000/,而不是<h1>Hello, Rails!</h1>它应该看到的,我得到了错误Did not recognize your adapter specification.
错误块只是application.html.erb文件中的一些HTML ,这是违规行:
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
Run Code Online (Sandbox Code Playgroud)
如果我从文件中删除此行,它将按预期工作.我一派错误和它我看到了它可能有一些做的json或coffeescript宝石.我已经安装了这些宝石和最新的,与沿rails和turbolinks宝石,据我可以告诉他们似乎都工作正常.
这不是必需的,但我想在我的Rails应用程序中使用turbolinks.对于出了什么问题一无所知也感觉不好.我怎么解决这个问题?
我在启用Turbolinks的情况下将Facebook社交插件(特别是评论)添加到我的Rails 4应用程序时遇到了麻烦.我在turbolinks问题#62上遵循了这个例子,但无法让它工作.
我也在这里试过turbolink的解决方案,但无法让它工作.
根据这个答案修复turbolinks页面上的明显拼写错误也无效.
SDK未加载,控制台中没有错误.
码:
### view:
<div id="fb-root"></div>
<div class="fb-comments" data-href="<%= request.original_url %>"></div>
### coffeescript:
fb_root = null
fb_events_bound = false
$ ->
loadFacebookSDK()
bindFacebookEvents() unless fb_events_bound
bindFacebookEvents = ->
$(document)
.on('page:fetch', saveFacebookRoot)
.on('page:change', restoreFacebookRoot)
.on('page:load', ->
FB.XFBML.parse()
)
fb_events_bound = true
saveFacebookRoot = ->
fb_root = $('#fb-root').detach()
restoreFacebookRoot = ->
if $('#fb-root').length > 0
$('#fb-root').replaceWith fb_root
else
$('body').append fb_root
loadFacebookSDK = ->
window.fbAsyncInit = initializeFacebookSDK
$.getScript("//connect.facebook.net/en_US/all.js#xfbml=1")
initializeFacebookSDK = ->
FB.init
appId …Run Code Online (Sandbox Code Playgroud) facebook ruby-on-rails facebook-javascript-sdk turbolinks ruby-on-rails-4
已经广泛记录了这个问题(或者它的味道),但是尽管我的调查和阅读仍然无法解决这个问题,...
安装了以下gem的Rails 4应用程序:
Using rake 10.3.2
Using i18n 0.6.11
Using json 1.8.1
Using minitest 5.4.1
Using thread_safe 0.3.4
Using tzinfo 1.2.2
Using activesupport 4.1.4
Using builder 3.2.2
Using erubis 2.7.0
Using actionview 4.1.4
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.1.4
Using mime-types 1.25.1
Using polyglot 0.3.5
Using treetop 1.4.15
Using mail 2.5.4
Using actionmailer 4.1.4
Using activemodel 4.1.4
Using arel 5.0.1.20140414130214
Using activerecord 4.1.4
Using execjs 2.2.1
Using autoprefixer-rails 3.0.1.20140826
Using bcrypt 3.1.7
Using sass 3.2.19
Using bootstrap-sass …Run Code Online (Sandbox Code Playgroud) 如何知道哪一部分DOM已被Turbolink调用取代?
示例流程:
在文档中,我发现了page我可以订阅的事件,例如:
$(document).on('page:receive', function (e) {
console.log(e);
});
Run Code Online (Sandbox Code Playgroud)
当然我可以从中看出,DOM的一部分即将被替换,但我怎么知道它的哪一部分呢?
javascript ruby-on-rails javascript-events turbolinks ruby-on-rails-4
我目前正在为使用Turbolink(红宝石)的产品编写Selenium Webdriver测试。当我单击一个按钮时,我必须等待涡轮链接工作。当我测试jQuery回调时,我通常使用以下命令等待代码:
driver.execute_script 'return jQuery.active == 0'
Run Code Online (Sandbox Code Playgroud)
我可以通过Java脚本检查哪些内容以验证Turbolinks是否已完成?还是我可以抓住一个可以做到的元素?我在顶部看到一个进度条,但是在任何地方都找不到该元素。
编辑:
我可以做这样的事情:
driver.execute_script "$(document).on('page:load', function () { window.turbolinks = true; });"
driver.execute_script "$(document).on('page:before-change', function () { window.turbolinks = false; });"
Run Code Online (Sandbox Code Playgroud)
在页面加载时,然后我可以在window.turbolinks上等待
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
wait.until { driver.execute_script 'return window.turbolinks;' }
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来解决这个问题?
我想在每次加载turbolinks(即加载页面)时执行几行js,而不是从缓存中执行js,但是每次都要在turbolinks加载事件之前强制运行它.那可能吗?
我试图通过隐藏html主体并在app.js.coffee中执行此操作来摆脱FOUC
$(document).on 'turbolinks:load', ->
document.body.style.visibility = 'visible'
Run Code Online (Sandbox Code Playgroud)
但是在重新加载页面的第3或第4次之后,FOUC开始启动.
要查看此动态,请访问该网站.
我正在使用Turbolinks 2.5.3,我在主页的底部有一个脚本标签.
<script>
$(document).ready(function() {
alert('hello');
});
</script>
Run Code Online (Sandbox Code Playgroud)
对于网站上的每个页面,我运行以下JS:
Turbolinks.pagesCached(0);
Run Code Online (Sandbox Code Playgroud)
如果我访问主页,则会出现一次警报.如果我按下后退按钮然后在我的浏览器上转发按钮,主页将加载,现在出现两个警报.如果我再次重复此过程,将出现三个警报.
这是我的问题:
当我明确告诉不要时,为什么Turbolinks会缓存页面.是否与Turbolinks转换文档就绪事件监听器有关?我如何解决这个问题,每次只加载一次?
当我导航到带有TinyMCE的页面时,它会显示常规textareas,直到我因为turbolinks刷新页面.这是一个记录良好的问题,人们通常会推荐以下某种形式:
$(document).on('page:change', function () {
<code here>
});
Run Code Online (Sandbox Code Playgroud)
我试过这方面的每一个变化都无济于事.
我想在我的Web应用程序中使用Turbolinks。但是,我在涡轮链接和数据表方面遇到了一些麻烦。
确实,当我第一次加载数据表时,它会为其生成DOM,一切正常。但是使用turbolinks时,页面将与生成的DOM一起缓存,因此当我更改页面并返回我的数据表时,所有数据表功能均不起作用(分页,排序,过滤器...)
我认为,在已经生成DOM时重新加载数据表是行不通的,因此我尝试在重新加载它之前销毁它:同样的问题
这是我的datatable函数: Datatable函数
这里是对它的调用:对它的调用
您是否遇到过这个问题,我该怎么解决?
感谢您的回复
turbolinks ×10
javascript ×5
jquery ×3
datatable ×1
devise ×1
facebook ×1
ruby ×1
ruby-2.0 ×1
selenium ×1
tinymce ×1