草庐IT

et_update_your_trigger_name

全部标签

ruby-on-rails - 服务器启动时如何修复 "Your Ruby version is 2.3.0, but your Gemfile specified 2.2.5"

我在运行服务器时遇到此错误,我该如何解决? 最佳答案 为了兼容性,您最好安装Ruby2.2.5。本地计算机中的Ruby版本与Gemfile中声明的版本不同。如果您使用的是rvm:rvminstall2.2.5rvmuse2.2.5否则,如果您使用的是rbenv:rbenvinstall2.2.5rbenvlocal2.2.5否则如果你不能通过rbenv改变ruby​​版本,readhere 关于ruby-on-rails-服务器启动时如何修复"YourRubyversionis2.3.0

ruby - bundler 能告诉我 Gemfile 中的哪些 gems 有更新的版本吗(例如 bundle update 的试运行)

有没有办法运行bundleupdate在假装模式下,类似于Rails生成器的-p(假装)标志或cap的-n(试运行)标志?我在想像这样的事情:$>bundleupdate-pFetchingsourceindexforhttp://rubygems.org/Thefollowinggemshaveupdatedversions:...listofgems... 最佳答案 Bundler1.1引入了一个新的“过时”功能,这正是我一直在寻找的。PatShaughnessy很棒write-up关于新功能。用他的话说,bundleoutda

ruby-on-rails - 如何在不触及 updated_at 属性的情况下更新单个属性?

我怎样才能做到这一点?试图创建2个方法,称为defdisable_timestampsActiveRecord::Base.record_timestamps=falseenddefenable_timestampsActiveRecord::Base.record_timestamps=trueend和更新方法本身:defincrement_pagehitupdate_attribute(:pagehit,pagehit+1)end使用如下回调打开和关闭时间戳:before_update:disable_timestamps,:only=>:increment_pagehitafte

ruby-on-rails - ruby rails : How do you explicitly define plural names and singular names in Rails?

例如,我使用“Bonus”作为我的模型,所以我希望“bonuses”是复数形式而“bonus”是单数形式。但是,在Ruby中,这会导致:"bonus".pluralize#bonus"bonuses".singularize#bonuse因此,例如,当我执行“has_many:bonuses”时,它不会使用Bonus.rb模型(因为Ruby需要Bonuse.rb模型)。有没有一种方法可以在RubyonRails中以某种方式更正这一点,使“bonuses”充当模型bonus.rb的复数形式? 最佳答案 在config/initiali

ruby-on-rails - Rails : named_scope, lambda 和 block

我认为下面两个是等价的:named_scope:admin,lambda{|company_id|{:conditions=>['company_id=?',company_id]}}named_scope:admin,lambdado|company_id|{:conditions=>['company_id=?',company_id]}end但Ruby正在提示:ArgumentError:triedtocreateProcobjectwithoutablock有什么想法吗? 最佳答案 这是一个解析器问题。试试这个named_s

ruby-on-rails - rails : Update model attribute without invoking callbacks

我有一个具有:credits属性的用户模型。我想要一个简单的按钮,它将通过名为“add”的路由将5添加到用户的积分中,以便/users/3/add将5添加到用户id=3的积分中。defadd@user=User.find(params[:id])@user.credits+=5redirect_toroot_pathend那是我Controller的相关部分。问题是,我不想调用@user.save,因为我有一个before_save回调,它根据当前的UTC时间重新加密用户的密码。我只想简单的给属性加5,避免回调,没想到这么简单的事情这么难。编辑:我将回调更改为:before_creat

ruby-on-rails - 如何修复 "Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0"

我创建了一个Ruby项目,但是在运行bundleupdate和bundleinstall时返回错误:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0它的图像是:http://i.imgur.com/dZMhI11.png?1我的gemfile是:ruby'2.0.0'#ruby-gemset=railstutorial_rails_4_0gem'rails','4.0.0'group:developmentdogem'sqlite3','1.3.8'endgem'sass-rails','4.0.0'gem'uglifier','2

Ruby 元编程 : dynamic instance variable names

假设我有以下哈希:{:foo=>'bar',:baz=>'qux'}我如何动态设置键和值以成为对象中的实例变量...classExampledefinitialize(hash)...magichappenshere...endend...这样我就可以在模型中得到以下内容...@foo='bar'@baz='qux'? 最佳答案 您要找的方法是instance_variable_set.所以:hash.each{|name,value|instance_variable_set(name,value)}或者,更简单地说,hash.e

ruby - 如何解决 "You need to have Ruby and Sass installed and in your PATH for this task to work"警告?

我正在为工作设置一台新Mac。我已经在全局范围内安装了Grunt&GruntCLI。然后我在项目文件夹中执行了npminstall以安装所有依赖项。到目前为止没有问题,但是当我尝试运行sass:dist任务时,我收到了这个警告:Warning:YouneedtohaveRubyandSassinstalledandinyourPATHforthistasktowork.Moreinfo:https://github.com/gruntjs/grunt-contrib-sassUse--forcetocontinue.据我了解,我需要在更全局的级别上安装Ruby和Sass才能运行此任务。

ruby-on-rails - Rails update_attributes 没有保存?

是否有不保存记录的update_attributes替代方案?所以我可以这样做:@car=Car.new(:make=>'GMC')#otherprocessing@car.update_attributes(:model=>'Sierra',:year=>"2012",:looks=>"SuperSexy,wannamakelovetoit")#otherprocessing@car.save顺便说一句,我知道我可以@car.model='Sierra',但我想在一行中更新它们。 最佳答案 我相信你要找的是assign_attri