Tag: javascript

从Rails(表单)向Javascript发送数据

我在Rails中存储了一些数据,然后我从Javascript访问。 (我正在使用gon gem这样做)。 当我在控制器中对字符串值(对于gon)进行硬编码时,它工作正常,我可以从javascript访问这些数据: #set in rails, available in JS gon.stuff = { “1” => “one stuff\n print ‘hi’.. “, “2” => “two stuff\n print ‘by’ “} 但是,当我通过Rails表单提交数据(到Post的’stuff’列)时,它最终会“过度字符串化”,因此它在Javascript中显示为一个完整的字符串: post.stuff text_area: { “1” => “stuff about one\n more stuff.. “, “2” => “two stuff\n more stuff”} 在rails中设置数据: gon.stuff = @post.stuff JS数据最终为完整字符串: “{ “1” => “stuff about […]

Select2 JS lib不能在Rails应用程序上运行

我得到了这个利用select2 JS库的Rails应用程序,无法弄清楚为什么它没有为我的选择列表设置样式。 它正在生产中。 我从生产服务器的快照创建了一个临时服务器。 我运行了rake assets:clobber && rake assets:precompile成功的地方。 我检查了已编译的application.js和application.css文件,其中包含JS代码和样式。 我可以运行$(“.classIwant”).select2(); 在控制台中它选择列表的样式,但是当我选择一个选项时它不会做任何事情。 我在运行$(“.classIwant”).select2();之后也遇到了这个错误$(“.classIwant”).select2(); 在控制台中: [违规]执行JavaScript时强制重排需要49毫秒 请原谅我的无知,因为这是我第一次使用这个JS lib。 任何帮助将非常感激。 提前致谢。 更新#1:当我将以下代码复制到控制台并手动运行App.init(); 有用。 为什么页面没有加载这个。 (function() { window.App || (window.App = {}); App.init = function() { $(“.classIwant”).select2(); $(‘#search’).on(“keyup”, function() { return searchTable($(this).val()); }); $(‘#search-list’).on(“keyup”, function() { return searchList($(this).val()); }); $(“#the_id”).on(‘change’, function(e) { return $(this).parent().submit(); }); return $(‘#preloader’).delay(200).fadeOut(); }; […]

Rails Asset Pipeline JS压缩插入“非法字符”

我刚刚在我的javascript中询问了一个关于“非法字符” 的问题 。 那里的答案让我发现在插入各种非法字符的Rails资产管道中压缩javascript存在问题。 我在post中收到的错误是: SyntaxError: Invalid character ‘\u0008’ 我发现不使用压缩导致它完全消失 ……但我想要压缩! 使用Rails默认的uglifer gem发现了该错误。 我想也许这是特定压缩gem的bug,所以我尝试使用Rails文档中指示的其他压缩器。 我有非常相似但不同的错误: Uglifier: SyntaxError: Invalid character ‘\u0008’ Closure: SyntaxError: Invalid character ‘\u0190’ YUI: SyntaxError: Invalid character ‘\u0025’ 我试着查看这些最小化的代码,但因为“无效字符”每次都不同,所以它让我相信其他问题。 这是一个压缩的JS文件示例。 任何人都能指出我在正确的方向吗?

counter_cache没有在ajax中更新

我有一个运行类似链接的js代码(带有ajax) – 链接更改为不同(使用正确的路由和方法),并且我希望也更新模型中的列的likes_count。 问题是价值没有得到更新。 没有Ajax(整页加载) – 值正常 #create.js.erb $(“#like_link”).html(“”) $(“#likes”).html(”) #relevant html snippet from the view Total likes: #model – like.rb class Like true end 使用时 $(“#likes”).html(”) 它工作但缺少counter_cache的观点

刷新后退按钮上的所有信息按:Ruby on Rails

我的RoR网站使用fullcalendar gem实现日历。 每个用户都有一个日历,显示他或她正在参加的事件。 以下方案为我的问题设定了阶段: 用户Alice在她的日历上单击一个事件,该事件将导致事件的show页面。 Alice单击事件show page上的“无人参与事件”按钮 Alice单击后退按钮。 她无人看管的事件仍然列在她的日历上。 如何让浏览器刷新Alice的事件信息,以便在按下后退按钮时仅显示她当前正在参加的事件? 我已经搜索了Stack Overflow并没有找到可行的解决方案。 如此处所示的缓存清除如何防止Rails中的浏览器页面缓存不起作用。 我甚至不确定这是一个缓存问题。 也许有一些javascript会强制重新加载信息? 任何解决方案都非常感谢。 谢谢! 回应@ElliottRoche: 在视图中单击“出席”按钮,触发出席操作: true, :id => “attend” %> 参加活动会从与会者列表中添加/删除与会者,如下所示: def attend @event = Event.find(params[:id]) @attendee = User.find(session[:user_id]) if @event.users.exclude?(@attendee) @event.users << @attendee @event.save else @event.users.delete(@attendee) end @attendees = @event.users respond_to do |format| format.js format.html { } format.json { } […]

Twitter bootstrap datetime-picker在模态中没有正确显示

我一直在使用twitter bootstrap datetime-picker和ruby on rails来显示日历,我也在一个模态中使用它,但它显示为部分,因为我试图在屏幕的底部显示 HTML JS $(document).ready(function(){ $(‘#datetimePicker’).datetimepicker(); }); 我也用过这个额外的CSS .bootstrap-datetimepicker-widget { z-index:99999 !important; }

Respond_to混乱

我有一个编辑/更新表单,我通过form_for设置: 在有效数据的情况下,我希望相应的更新操作保存更改,并将用户重定向到他来自的位置。 在这种情况下不需要JS。 如果数据无效,我希望JS处理这种情况。 我把控制器设置成这样: def update @user = current_user @vocab = @user.vocabs.find(params[:id]) if @vocab.update_attributes(vocab_params) flash[:notice] = “Vocab updated!” respond_to do |format| format.js { redirect_back_or(home_user_path(@user)) } end else flash[:error] = “Vocab invalid!” respond_to do |format| format.html { render ‘edit’ } format.js { render file: “vocabs/update.js” } end end end 我遇到的问题是,在有效数据的情况下,保存的URL(study_setup)正在被处理为JS,这可以防止端被加载。 我在哪里告诉Rails使用JS进行此重定向? Started PATCH “/users/1/vocabs/445” for […]

rails 3 javascript没有执行,尽管文本/ javascript内容类型作为响应

我正在页面上执行非ajax GET请求。 在相应的控制器/动作中,我正在返回javascript。 但是,这个javascript没有被执行。 相反,它在我的浏览器上显示为文本。 被击中的动作: def my_action render :template => ‘shared/_alert.js.erb’, :content_type => ‘text/javascript’ end js.erb文件: alert(“hello”); Charles HTTP请求: GET /my_action HTTP/1.1 Host: 172.16.151.186:3000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Cache-Control: max-age=0 Accept-Language: en-us Accept-Encoding: gzip, deflate Cookie: _session_id=BAh7CEkiD3Nlc3Npb25faWQGOgZFRiIlZGZhMjFkOWRlNDQ3ZThlYjRiMzljNzMyMjg0N2E2YmJJIhBfY3NyZl90b2tlbgY7AEZJIjFtZ05jUmsxZlRIQ1FCaVVLczVCeUF2STNtY1gzUzhucTk3alF4RjVsVklFPQY7AEZJIhRjdXJyZW50X3VzZXJfaWQGOwBGSSIpYjMwNzg5NzItNDQzNi0xMWUxLTk5YzUtNGY3NjNlNzJhZmIyBjsARg%3D%3D–e345e67c4b130d2f3e4bdb48bd3d5d4f892f8272 Pragma: no-cache Connection: keep-alive 查尔斯HTTP响应: […]

轨道上的ruby:小叶轨道没有装载

使用RoR 4.1.4 我正在尝试使用leaflet-rails gem 。 我按照github页面中列出的步骤进行操作,但是当我尝试加载地图时,我看到了 ReferenceError: L is not defined 在浏览器控制台中。 这显然意味着正在加载和执行gem中的帮助程序,但它找不到leaflet.js文件。 但是,页面的head部分显示正在引用/assets/leaflet.js ,它实际上就在那里。 当我查看生成的代码时: var map = L.map(‘map’) map.setView([-54.0, 6.08], 16) L.tileLayer(‘http://{s}.tile.osm.org/{z}/{x}/{y}.png’, { attribution: ‘© OpenStreetMap contributors’, maxZoom: 18, subdomains: ”, }).addTo(map) 因此gem在map div下面添加了一个脚本,然后,由于sprockets机制和所有这些,所以加载了其他脚本。 对我来说,这看起来很明显,脚本不可能加载leaflet.js,因为它后来被引用! 那么……我是否误解了RoR如何处理gem和javascripts呢? 它一定是在某个时候起作用的…… 这是我的/app/assets/javascript/application.js: //= require jquery //= require jquery.ui.widget // Here I load a whole bunch of javascripts […]

在backbone.js + rails中渲染视图

我试图在我的根页面上呈现视图“new_view.js.coffee”(创建用户的表单)。 我正在使用rails-backbone gem,到目前为止我有这个: 应用程序/视图/家/ index.html.erb Loading… $(function() { window.newView = new Example.Views.Users.NewView({model: users}); newView.render(); Backbone.history.start(); }); 它基本上是这个的副本(来自rails-backbone README.md): 应用程序/视图/职位/ index.html.erb $(function() { // Blog is the app name window.router = new Example.Routers.PostsRouter({posts: }); Backbone.history.start(); }); 我的新观点是这样的: 资产/ Java脚本/骨干网/视图/用户/ new_view.js.coffee Example.Views.Users ||= {} class Example.Views.Users.NewView extends Backbone.View template: JST[“backbone/templates/users/new”] events: “submit #new-user”: “save” constructor: (options) -> […]