我一直在编写一个小应用程序,有很多来自stackoverflow的帮助。 基本前提很简单,我在网络上看到了这种function:我试图将一个位置列表绘制到可搜索/可平移的谷歌地图上。 位置存储在后端,控制器将这些位置提供给视图。 涉及AJAX是因为我不想重新加载整个页面。 以下是场景:a)用户通过zipcode搜索位置=>地图加载新位置,搜索获取发送到服务器并映射加载任何标记,如果有任何设置半径,地图设置默认缩放级别; b)用户平移/缩放=>地图停留在用户离开的任何地方,使用视口边界框的搜索被发送到服务器并映射结果。 地图将在初始加载时默认为西雅图,它尝试的第一件事是地理定位用户… 使用gmaps4ails wiki,主要是这个问题答案的修改版本: Google Maps for Rails – 用AJAX更新标记我已经非常接近了。 实际上,这很有效。 这是它的样子: sightings_controller.rb def search if params[:lat] @ll = [params[:lat].to_f, params[:lng].to_f] @sightings = Sighting.within(5, origin: @ll).order(‘created_at DESC’) @remap = true elsif search_params = params[:zipcode] geocode = Geokit::Geocoders::GoogleGeocoder.geocode(search_params) @ll = [geocode.lat, geocode.lng] @sightings = Sighting.within(5, origin: @ll).order(‘created_at DESC’) @remap = true […]
我一直在尝试为我的设计和omniauth登录设置twitter bootstrap模式但没有成功。 我也尝试过几个教程,仍然无法让它们打开。 我的服务器日志中没有出现错误,只是以下内容: “Processing by Devise::SessionsController#new as JS” 我在application.coffee文件中需要twitter / bootstrap #= require_self #= require twitter/bootstrap #= require ./util #= require ./home and so on 在我的application.html.slim中,我添加了两个额外的链接来登录/登录现有的链接,只是为了确保这些链接在删除旧的之前 li = link_to “Login”, new_user_session_path, :remote => true, ‘data-toggle’ => ‘modal’, ‘data-target’ => ‘#login_modal’, :class => “btn btn-small”, :method => ‘get’ li = link_to “Sign Up Free”, new_user_session_path, […]
在我的Ruby on Rails应用程序中,我使用Facebox插件进行Ajax弹出窗口。 我有2个页面叫做add_retail_stores/new.html.erb和add_retail_stores/new.js new.js页面inheritance了new.html.erb页面中的所有元素,因此它看起来完全相同。 我在HTML页面上有一个Google地图脚本,可以正常工作。 但是在我的不同页面上弹出的new.js页面名为add_store_prices.html.erb页面( true %> ) 我收到错误: 警告:忽略从异步加载的外部脚本调用document.write()。 源文件: http:// localhost:3000 / add_store_prices行:0 我相信因为它试图通过2个函数/脚本。 第一个是Facebox,然后是Google脚本。 有谁知道如何处理这个错误? 编辑: 我相信Facebox插件正在使用document.write但我不确定在哪里,也许在我页面上的这2行之一? new.js: $.facebox(‘ ‘business_retail_stores/new.html’) %>’) $(‘#facebox form’).data(‘remote’,’true’);
我正在尝试使用jQuery Mobile和Rails在页面加载时打开一个弹出窗口。 可以使用链接打开弹出窗口,但我无法在加载时打开它。 HTML代码 … Javascript代码 $(document).on(“pageshow”, function() { $(‘#popup-choix’).popup(‘open’); }); 我查看了Chrome,并且Javascript正确链接到该页面。 我在页面上有一个链接打开弹出窗口。 它完美地运作。 … 我想问题是我的Javascript然后…… UPDATE 我将Javascript放在popup.js ,然后使用application.js清单调用它。 更新2 我在popup.js中编写了javascript并使用清单调用它。
我正在构建一个chrome扩展,它可以直接从浏览器创建联系人,而无需转到我的设计驱动的rails应用程序本身。 联系人#Create需要身份validation,所以我想知道如何从扩展程序发送经过身份validation的请求。 我已经启用了设计TokenAuthenticatable ,所以我的用户有一个authtoken。 我在我的扩展程序js中写了一个方法,发布到我的rails应用程序的联系人#create action。 为了测试,我只是硬编码了我自己的身份validation令牌,这似乎有效。 但是扩展如何为用户访问auth令牌? 将此令牌存储到cookie中似乎不正确/安全。 我想我应该使用chrome.cookies访问并以某种方式使用我的应用程序的会话信息。 但我这里只得到一个sessionID。 任何帮助赞赏!
我正在Ruby on Rails中创建一个网站。 我有一个控制器动作,呈现如下视图: def show time_left = Time.now.to_i – 3.hours.to_i @character = current_user.characters.find(params[:id]) respond_to do |format| format.html # show.html.erb format.xml { render :xml => @character } end end 这很好,因为它可以像我一样呈现show.html.erb。 但是我想以某种方式将time_left作为Javascript变量传递给视图,因为这个值被倒计时JQuery插件使用。 我可以在HTML中的页面上放置一个javascript块,然后像这样打印一个实例变量: $(‘#countdown’).countdown(”) 但是我想把我所有的JS保存在一个外部文件中,在页面之外,任何人都可以提供一些关于如何实现它的建议吗?
我正在尝试在资产上设置用户,我max_users的问题是不确定如何将我的max_users方法从asset.rb给我的JS代码。 我试图使用带有Cocoon gem的max_users方法让“Add Another”按钮在达到该资产允许的指定max_users时消失。 硬件将始终设置为max_user为1,而软件永远不会有max_user值。 Max_users和profile_type一样工作。 JS工作原样,但不是总是停在1,我需要让它在max_users中注册值,并将show / hide作为基础。 任何帮助都感激不尽。 并提前谢谢你。 JS: $ -> check_to_hide_add_link = -> if $(“#assets_users .nested-fields”).length is 1 $(“#assets_users .links a”).hide() else $(“#assets_users .links a”).show() $(“#assets_users”).bind “cocoon:after-insert”, -> check_to_hide_add_link() $(“#assets_users”).bind “cocoon:after-remove”, -> check_to_hide_add_link() check_to_hide_add_link() Asset.show: – if @asset.users.empty? = simple_form_for([@asset_profile, @asset]) do |f| = f.input :max_users, as: :hidden #assets_users = f.simple_fields_for […]
显然,根据网页 更新 ,使用最新版本的wait_until , sleep或wait_until无效。 但是,如果我在测试中添加sleep(1)调用,我有一组仅适用于快速计算机的测试。 也就是说,测试看起来像: describe “dosimeters page” do before do click_link(“Dosimeter Read History”, :match=>:first) end … 变 describe “dosimeters page” do before do unix_wait click_link(“Dosimeter Read History”, :match=>:first) end … 我把unix_wait定义为: def unix_wait case RbConfig::CONFIG[‘host_os’] when /darwin/ when /linux-gnu/ sleep(1) end end 问题是,我有一台旧的Ubuntu 12.04四核笔记本电脑在Jenkins上运行这些测试,一切都运行良好,没有unix_wait调用。 测试在运行Ubuntu 13.10和macbook pro笔记本电脑的unix_wait桌面上随机失败,但如果我添加了unix_wait调用,则测试通过。 测试失败本身表示加载失败(即某些运行中缺少css元素,但其他运行中没有),并且当手动加载站点时,被测试的内容实际上有效。 那么这里适当的行动是什么? 显然,测试期间不允许sleep , wait_until也wait_until […]
我开始在我的网站上播放音频; 我以前在我的一个视图中实现了一个带有字形按钮的audio_tag。 在另一个视图中,我正在尝试列出我的所有单词对象,并且我希望有一个按钮来播放每个相关的音频。 截至目前,此function仅适用于此视图中列出的第一个单词对象。 如何在按钮中为视图中的所有对象播放声音? 课程显示视图: Vocabulary () application.js中: // This is a manifest file that’ll be compiled into application.js, which will include all the files // listed below. // // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, // or any plugin’s vendor/assets/javascripts directory can be referenced here using a relative path. // // […]
当我点击提交而没有整个页面刷新时,我正在刷新表“dashboard_categories”,这是我到目前为止所做的: http : //pastie.org/7822560 我现在仍然坚持使用Javascript,因为我是一个完整的新手。 我知道我必须抓住表单提交,发送数据然后调用部分刷新…但不知道如何。 有任何想法吗? 希望我离我不远…… 我在index.html.erb上有一个javascript的content_for标记: