草庐IT

eval_model_params

全部标签

ruby-on-rails - 在ruby中使用class_eval时,如何访问原始类中的常量?

我想使用class_eval扩展一个类,在尝试访问原始类中的常量时,我​​收到一条错误消息:NameError:未初始化常量HIS_CONSTANT来自./my_module.rb:35:in`show_his_constant'来自(IRB):4我用示例程序测试过,但无法正常工作。有人可以检查一下为什么这不起作用吗?谢谢!moduleMyModuleputs"startmymodule"defmytestputs"mytest"endmoduleYourModuledefyourtestputs"yourtest"endendendmoduleMyModulemoduleYourMo

ruby - 是否可以在 `class_eval` 中定义类方法?

我知道可以使用class_eval定义实例方法。是否可以在class_eval的上下文中定义类方法? 最佳答案 是的,这是可能的:classFooendFoo.class_evaldodefself.barputs"I'maclassmethoddefinedusingclass_evalandself"enddefbazputs"I'maninstancemethoddefinedusingclass_evalwithoutself"endendFoo.bar#=>"I'maclassmethoddefinedusingclass

ruby - 选择标记 : How to use params to set the selected value?

我有一个带有2个选项的选择标签:select_tag:type,options_for_select("Produit1Produit2",params[:product]),id:"different_option_value_html",onchange:"this.form.submit();",include_blank:"Whichproducts?"选择其中一个选项后,表单将自动提交。我想将参数保持在第一位。我的意思是在“whichproducts”的位置不点击选择就可见。 最佳答案 我终于更改了语法,使用它可以正常工作

ruby-on-rails - rails 3 : validates_presence_of validation errors on default value and in associated model

我有一个基本的发票设置模型:发票、项目、行项目。#invoice.rbclassInvoice:destroyvalidates_presence_of:statusbefore_save:default_valuesdefdefault_valuesself.status='sent'unlessself.statusendend#item.rbclassItemtrueend模型中还有更多内容,但为了简单起见,我只介绍了以上内容。我收到以下错误:2errorsprohibitedthisinvoicefrombeingsaved:Lineitemsinvoicecan'tbebla

ruby-on-rails - rails : How do I paginate multiple models with kaminari?

我在Controller中有这样的代码:defindex@plays=current_user.plays.includes(:game).order("created_atdesc")@wants=current_user.wants.includes(:game).order("created_atdesc")@ratings=current_user.ratings.includes(:game).order("created_atdesc")@activities=(@plays+@wants+@ratings).sort_by{|a|a.created_at}.reverse

ruby - Rails,防止 Model.scoped 的弃用警告,找到(:all) and relation #all?

我有通过但显示的测试$rspecspec/event_calendar_spec.rb......DEPRECATIONWARNING:Model.scopedisdeprecated.PleaseuseModel.allinstead.(calledfromevents_for_date_rangeat/home/durrantm/Dropbox/96_2013/work/code/ruby/event_calendar/lib/event_calendar.rb:52)DEPRECATIONWARNING:Calling#find(:all)isdeprecated.Pleasec

ruby-on-rails - Rails : many to many Model, NoMethodError:未定义的方法

我被这个问题困了一段时间。这是我的模型关系。classGame:destroyhas_many:players,through::participates,:dependent=>:destroyendclassPlayer:destroyhas_many:games,through::participates,:dependent=>:destroyendclassParticipate我把它放在seed.rbPlayer.destroy_allGame.destroy_allg1=Game.create(game_name:"LOL")g2=Game.create(game_nam

ruby-on-rails - ruby rails : models that do not have a table

在RubyonRails中创建模型的最佳方法是什么,就数据库表而言,它没有底层实现?编写在特定问题域上执行行为的类是很常见的,但可以使用ActiveRecord具有的一些好处,例如验证。最好只将它创建为模块还是助手?这里的最佳做法是什么? 最佳答案 查看RyanBates的截屏视频,其中完全涵盖了这一点-TablelessModels。http://railscasts.com/episodes/193-tableless-model使用这种方法,您的模型仍然是ActiveRecord::Base的子类,但手动定义列,这允许您使用A

ruby-on-rails - rails : Order a model by the last element of a has_many association

我有两个模型:User和Message,它们通过has_many关系连接。我想获得一个users列表,按他们上一条消息的时间戳排序。classUser当我这样做时:@users=User.includes(:messages).order('messages.created_atDESC').limit(5)它似乎对消息进行排序,获取最新的5条消息,然后返回与这些消息关联的用户。所以用户数可以少于5个。我想确保获得5个用户。我希望查询为每个请求获取最新消息,对最后的消息进行排序,然后将最新消息返回给用户。所以我想要这样的东西:@users=User.includes(:messages

ruby - 为什么 Ruby class_eval 从范围中删除常量?

我创建了一个带有常量和方法的类:classAFOO='hello'defbarputsFOOendendA.new.bar=>'hello'一切都按预期进行。但是,当我这样做时:A.class_evaldodefbarputsFOOendendA.new.barNameError:uninitializedconstantFOO奇怪...为了解决这个问题,我正在做:A.class_evaldodefbarputsself.class::FOOendend对为什么会这样有什么好的解释吗? 最佳答案 查找常量outwards在词法封闭的