草庐IT

At-rules

全部标签

ruby-on-rails - 更新属性而不改变 updated_at 字段

我正在运行Rails3.0。我有一个对象,我想更改其上的bool字段但不想更改updated_at时间戳。我们不会很快升级rails,所以update_column是不可能的。我宁愿不进行模型级别的更改来支持这一点(如本文中:http://blog.bigbinary.com/2009/01/21/override-automatic-timestamp-in-activerecord-rails.html),因为许多此类对象可能同时调用它们的方法。 最佳答案 您可以在更新前将record_timestamps属性设置为false。

ruby-on-rails - Ruby IDE : any worth looking at?

我目前使用TextMate进行我所有的Rails开发,我非常喜欢它,但我想知道我是否因为不使用IDE而遗漏了什么。有没有人从使用TextMate或其他强大的文本编辑器切换到RubyIDE?我错过了什么吗? 最佳答案 JetBrains,为Java创建了传奇的IDEAIDE的人,拥有RubyMine在测试版中。DHH提到过,一定不错! 关于ruby-on-rails-RubyIDE:anyworthlookingat?,我们在StackOverflow上找到一个类似的问题:

ruby-on-rails - 按 updated_at 对 ruby​​ 数组排序

我想做的就是从我的模型中获取最新的项目,然后让它们按属性“updated_at”排序(最新鲜的项目在前)。某处出错了,但我找不到:@results=Array.newNote.find(:all,:limit=>3,:order=>"created_atDESC").eachdo|item|@results3,:order=>"created_atDESC").eachdo|item|@results 最佳答案 你需要在排序中做比较。`@results=Array.newNote.find(:all,:limit=>3,:order

ruby-on-rails - 不选择 updated_at 属性就无法在 Rails 4 中更新模型

我正在从Rails3.2.13升级到4,在更新模型时遇到了问题。我正在尝试更新只有id的模型上的单个属性,我还想要验证和回调。这在Rails3中运行良好,但我在Rails4中遇到了问题。如果我这样做,在rails4中:user=User.select(:id).firstuser.first_name='name'user.save!我得到错误:NoMethodError:undefinedmethod`type_cast'fornil:NilClassfromC:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activereco

Ruby:有没有办法可以像这样进行赋值:self.value_at_location(x,y)=value?

我知道我能做到self.value_at_location=(x,y,value)通过将方法定义为value_at_location=(x,y,value)但为了可读性,我认为如果value_at_location(x,y)=(value)是可能的,那就太棒了。或类似的东西。有什么建议吗? 最佳答案 不,您不能定义setter方法来执行foo(x,y)=value。但是你可以做的是定义[]=(x,y,value),这样你就可以调用self[x,y]=value。 关于Ruby:有没有办法

ruby-on-rails - rails 5.x : How can I add a route at runtime without overwriting original routes table?

假设我有一个Controller操作应该导致将新路由添加到路由表中:defmake_routevanity_url=params[:vanity_url]vanity_redirect=params[:vanity_redirect]returnrenderjson:{status:400}unlessvanity_url&&vanity_redirectRails.application.routes.drawdogetvanity_url,to:redirect(vanity_redirect)endrenderjson:{status::ok}end当我触发这个Action时,它

ruby-on-rails - Rails 低级缓存 : Update cache when ActiveRecord object updated_at changes OR when a new object is added to collection

Rails附带片段缓存和低级缓存。片段缓存的工作原理非常清楚:Railswillwriteanewcacheentrywithauniquekey.Ifthevalueofupdated_athaschanged,anewkeywillbegenerated.ThenRailswillwriteanewcachetothatkey,andtheoldcachewrittentotheoldkeywillneverbeusedagain.Thisiscalledkey-basedexpiration.Cachefragmentswillalsobeexpiredwhentheviewfr

ruby - 无法解决错误 : #<Double (anonymous)> received unexpected message :[]= with (:rule_code, 1)

我正在努力解决我在测试以下内容时遇到的上述错误:defadd_rule_codenew_rulecount=list[:multiple_item_rules].count+list[:total_price_rules].count+1new_rule[:rule_code]=countend通过以下测试:it"addsauniquerulecode"doitem_rule=double({rule_type:"item",item_code:001,number_of_items:2,new_item_price:8.50})rules.add_rule_codeitem_rule

Ruby 正则表达式 (regex) : character appear only once at most

假设我想确保一个字符串x等于abcd的任意组合(每个字符出现一次或零次-->每个字符不应重复,但该组合可以以任何顺序出现)有效的例子:bc..abcd...bcad...b...d..dc无效的例子。abcdd、cc、bbbb、abcde(当然)我的努力:我尝试了各种技术:我最接近的是x=~^(((a)?(b)?(c)?(d)?))$但是如果我不按照我写的顺序输入它们,这将无法工作:适用于:ab、acd、abcd、a、d、c不适用于:bcda、cb、da(任何不在上述顺序中的)您可以在这里测试您的解决方案:http://rubular.com/r/wCpD355bubPS:字符可能不按

ruby-on-rails - Rails 元编程 : How to add instance methods at runtime?

我正在Rails中定义我自己的AR类,它将包括为用户字段0-9动态创建的实例方法。用户字段不直接存储在数据库中,它们将一起序列化,因为它们不经常使用。以下是执行此操作的最佳方法吗?替代方案?应该从哪里调用添加方法的启动代码?classInfo 最佳答案 一个不错的方法,尤其是当您可能有超过0..9个用户字段时,将使用method_missing:classInfoUSER_FIELD_METHOD=/^user_field_(\n+)$/defmethod_missing(method,*arg)returnsuperunlessm