.js.erb在使用Ajax时如何呈现不同的文件?
例如:
<% form_tag user_path, :method => :get, :remote => true do %>
Run Code Online (Sandbox Code Playgroud)
这经历了UserController#show然后呈现users/show.js.erb.如何让它通过UserController#show然后渲染users/hello.js.erb?
似乎已经更新了一些破坏指南针或橡皮糖的东西.它几天前工作得很好,直到我更新了我的宝石和宝石文件.现在即使回到早期的gemfile,它仍然给我错误.
我在这里开了一个详细的问题,详细介绍了如何在这里重新创建它
有谁知道我可以调试这个问题的更好方法?我实际上无法移动它或做任何事情.
怀疑的代码行
从完整的堆栈跟踪中我可以看到错误来自罗盘中的这条线,它似乎从Gumby的这条线获得变量
最小代码量
重现错误所需的最小代码量是Gumby的安装,它已安装在这里的项目中,我的gemfile包含rails 4.0.
的Gemfile:
source 'https://rubygems.org'
gem 'rails', '4.0.2'
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'turbolinks'
gem 'sass-rails'
gem 'coffee-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'compass-rails'
gem 'modular-scale'
gem "slim-rails"
gem 'sqlite3'
gem "mini_magick"
gem 'carrierwave'
gem "fog", "~> 1.3.1"
gem "pg"
gem 'will_paginate', '~> 3.0.0'
gem 'resque', "~> 1.22.0", :require => "resque/server"
gem 'exception_notification'
gem 'httparty'
gem 'devise'
gem "active_model_serializers"
gem "rails_best_practices"
group …Run Code Online (Sandbox Code Playgroud) ruby-on-rails sass asset-pipeline ruby-on-rails-4 compass-sass
我\xe2\x80\x99m 学习事件如何工作,主要是事件捕获和冒泡addEventListener。这篇文章对于整体理解很有帮助。
捕获和冒泡定义父元素中事件发生的顺序。据我了解,由于事件委托,这很重要。\xe2\x80\x99t实际上addEventListener不会为您委托事件,它只是搜索委托事件,这是正确的吗?
除了事件委托之外,还有其他原因需要搜索 DOM 层次结构吗?
\n\n当我将事件附加DOM level 1 onclick到父元素并单击其子元素之一时,我仍然将子元素作为事件获取target。因此,我不认为将事件侦听器附加到子元素然后冒泡以搜索委托元素有什么意义。我这里一定缺少什么东西..
当然,如果您手动维护委托事件,则无需在 DOM 层次结构中向上搜索委托事件?
\njavascript addeventlistener event-bubbling event-delegation dom-events
安Item has_many Pieces.我有两种方法,一种可以找出这件作品是否可用,另一种可以找出一件作品是否有可用的作品.
# in piece.rb
def available?(current_user, piece)
if piece.status == 1
true
elsif piece.status == 2
false
elsif piece.status == 3
true if piece.friend_id == current_user.id
end
end
#in item.rb
def available?(current_user, user, item)
false
item.pieces.each do |piece|
if piece.available?(current_user, piece)
true
end
end
end
Run Code Online (Sandbox Code Playgroud)
我的available?方法Item是错的.我希望它返回,true如果Item有可用pieces,false如果没有.我的代码背后的理论是该方法返回,false除非有一个返回的片断true.当我在控制台中执行此操作时,我得到的是散列中的碎片,而不是真或假.
任何人都可以解决我的问题或告诉我更好的方法吗?