草庐IT

event-delegation

全部标签

ruby - 将属性方法委托(delegate)给父对象

我有以下类(class):classAlphabetattr_reader:letter_freqs,:statistic_letterdefinitialize(lang)@lang=langcaselangwhen:en@alphabet=('A'..'Z').to_a@letter_freqs={...}when:ru@alphabet=('А'..'Я').to_a.insert(6,'Ё')@letter_freqs={...}...end@statistic_letter=@letter_freqs.max_by{|k,v|v}[0]endendfoo=Alphabet.n

jquery - Rails 4 如何捕捉 ajax :success event

我正在使用Rails4.0。我正在发送这样的事件(注意:remote=>true):true,:class=>"rate-btnyes-btnbtnbtn-defaultbtn-sm"}%>我的Controller看起来像这样:defratevideo=Video.find_by(hashed_id:params[:id])action=params[:yesno]putsvideo.hashed_idputsactionrespond_todo|format|if(action=='yes')new_rating=video.rating==1?0:1video.update(is_

ruby-on-rails - 使用带有哈希的 def_delegate

我知道Forwardable#def_delegate如何与对象的方法一起工作,但是是否有类似的方法将方法名称转发到哈希键。喜欢:hash={some_value:42,other_value:31415}def_delegate:hash,:some_value,:other_value调用object.some_value应该返回42PS:def和classeval是一种方法,但是有更好的方法吗? 最佳答案 这对OpenStruct来说是件好事,它基本上将哈希包装在一个对象中。2.2.1:001>require'ostruct'

ruby-on-rails - Rails 中的推杆 : "Unknown auth_key" - server side not triggering events

我正在尝试将Pusher插入到我已经很晚的Rails应用程序中。客户端工作正常-使用PusherEventCreator触发所需的javascript。但是服务器端不工作:在我的通知Controller中使用以下代码创建要测试的操作:Pusher.trigger('private-4','new_message',{:from=>"christian",:subject=>"hello"})给出这个错误:Pusher::AuthenticationError(Unknownauth_key):app/controllers/notifications_controller.rb:57:

ruby - 导轨 3 : method delegations with nil relationships

给定以下(大大简化的)对象:classPlayer:player,:prefix=>:playerend我需要在多个View中显示玩家名称。但是Player可能为nil是完全有效的(并且是预期的)。我目前通过以下方法处理此问题:classCharacter我不喜欢这个有几个原因。有更好的方法吗? 最佳答案 如果您主要处理与View相关的代码,您可能会发现在delegate调用中将“or”与allow_nil:true结合使用感觉很自然:Name:您可能会考虑的另一个有趣的模式是nullobjectpattern;使用此模式,您可以使

ruby - 用 Yardoc 记录 def_delegators

我有一个使用Forwardable中的def_delegators方法的类模块。我还没有找到获取Yardoc的方法为其输出文档。我试过使用macro但它不会为这些特定方法输出任何内容(文件中的其他一切都很好,并且没有错误),而且我有几个不同长度的def_delegators。例如classAextendForwardable#othercode…#@!macro#@seeArray#$1#@seeArray#$2#@seeArray#$3def_delegators:@xs,:size,:是否有gem或方法可以避免尝试编写Yard扩展? 最佳答案

ruby - RMagick - ImageMagick 给出错误 "no decode delegate for this image format"

当我尝试操作从sinatra上传的图像时出现问题。File.open(params[:file][:tempfile])do|p|thumb=Magick::Image.read(p)thumb.crop_resized!(75,75,Magick::NorthGravity)end上传的文件是jpeg,上传图片时的表单数据包括{:filename=>"299732_176749115737355_100002068035867_380115_618512842_n.jpg",:type=>"image/jpeg",:name=>"file",:tempfile=>#,:head=>"

ruby-on-rails - 将方法委托(delegate)给 has_many 关联会忽略预加载

是否可以将方法委托(delegate)给Rails中的has_many关联,并且仍然将预加载的数据保存在该关联上,同时遵循得墨忒耳法则?目前在我看来,你被迫选择一个或另一个。也就是说:通过不委托(delegate)来保留预加载的数据,或者丢失预加载的数据和委托(delegate)。示例:我有以下两个模型:classUser注意:User#all_blogs_have_title?做的事情与all_have_title?的委托(delegate)方法完全相同。据我了解,以下内容违反了得墨忒耳定律。但是:它会保留您预加载的数据:user=User.includes(:blogs).firs

ruby-on-rails - Rails 委托(delegate)设置值

我有一个User.rb模型和一个UserSetting.rb模型,我想委托(delegate)给它们(getter和setter方法)。在user.rb中delegate:email_opt_in,:email_opt_in=,:to=>:user_setting乍一看效果很好。user=User.find(1)user.email_opt_in#=>falseuser.email_opt_in=trueuser.saveuser.email_opt_in#=>true但仔细观察,user.save不会传播到UserSetting模型。User.find(1).email_opt_in

ruby - 将实例方法委托(delegate)给类方法

在Ruby中,假设我有一个类Foo允许我对我的大量Foos进行分类。所有Foos都是绿色和球形的是自然界的基本法则,因此我定义了类方法如下:classFoodefself.colour"green"enddefself.is_spherical?trueendend这让我做Foo.colour#"green"但不是my_foo=Foo.newmy_foo.colour#Error!尽管my_foo显然是绿色的。显然,我可以定义一个调用self.class.colour的实例方法colour,但如果我有很多这样的基本特征,那将变得笨拙。我大概也可以通过定义method_missing来尝