草庐IT

ruby-on-rails - rails - postgres 错误 : Reason: Incompatible library version: libpq. 5.dylib 需要 1.0.0 或更高版本,

我无法在我的Mac(10.6.8)上设置Ruby(1.9.3)、Rails和Postgres(9.0.8)。每次运行railsconsole时,我都会收到以下错误:/Users/dc/.rvm/gems/ruby-1.9.3-head@global/gems/pg-0.13.2/lib/pg.rb:4:in`require':dlopen(/Users/dc/.rvm/gems/ruby-1.9.3-head@global/gems/pg-0.13.2/lib/pg_ext.bundle,9):Librarynotloaded:@loader_path/../lib/libssl.dy

ruby-on-rails - 测试速度 : ActiveRecord use_transactional_fixtures vs. DatabaseCleaner.strategy = :transaction

从来源(database_cleaner,active_record)来看,它们应该同样快。但是有人声称使用database_cleaner的事务策略会降低Controller和模型规范的速度(forexample)。我手头没有用于基准测试的大型测试套件。任何人有任何见解或比较两者? 最佳答案 我花了一点时间在广泛使用ActiveRecord固定装置的中型代码库上比较两者。当我将其切换为使用DatabaseCleaner而不是use_transactional_fixtures时,模型规范开始花费大约两倍的时间。在进行了与您相同的比

ruby - ruby on rails 中的 SQL Like 运算符

我的任务是选择搜索名字以参数值和所选值中的城市开头的学生。如何在ruby​​onrails中进行设置?我确实喜欢这个,但这不起作用Controllerdefliststudentcount=Student.count()putsstudentcount@studentname=Student.where("namename1ANDcity=:cityId1",{:name1=>params[:name],:cityId1=>params[:cityId]})puts'studentname'puts@studentname.inspect@students=Student.limit(

ruby-on-rails - `new` 关键字在此 Ruby 方法定义中如何工作?

Railscasts发布了一个关于重构的精彩片段。一种方法是将复杂的Controller逻辑移动到服务对象中,而不是将其下推到模型中。在oneserviceobject,使用了以下代码:classPasswordResetattr_reader:userdefself.from_email(email)newUser.find_by_email(email)enddefself.from_token(token)newUser.find_by_password_reset_token!(token)end...endnew关键字在两个方法体中起什么作用?新的User.find_by_。

ruby-on-rails - rails 无法加载此类文件 -- mysql2/mysql2 (LoadError)

我是ruby​​onrails的新手,我找不到这个错误的解决方案:railss/usr/local/share/gems/gems/mysql2-0.3.13/lib/mysql2.rb:8:in`require':cannotloadsuchfile--mysql2/mysql2(LoadError)from/usr/local/share/gems/gems/mysql2-0.3.13/lib/mysql2.rb:8:in`'from/usr/local/share/gems/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in`requi

ruby-on-rails - ActiveRecord 急切加载多个 belongs_to 关联

问题我有以下ActiveRecord模型:classPersonbelongs_to:favourite_car,class_name:'Car'belongs_to:business_car,class_name:'Car'belongs_to:home_car,class_name:'Car'end当我想访问所有这三个关联时,它会生成三个选择查询:SELECT*FROMcarsWHEREcars.id=?这本质上是N+1问题。理想情况下,我希望它只生成一个表单查询SELECT*FROMcarsWHEREcars.idIN(?,?,?)可能的解决方案我可以将其移动到一个has_man

ruby-on-rails - 如何在 Factory Girl 或 Minifacture 中使用随机唯一数据制作 Ruby 测试工厂?

我正在用一个典型的工厂测试一个典型的Rails模型:#Mymodelusesa3-letteruppercaseairportcode,#suchas"ATL"forAtlanta,"BOS"forBoston,etc.classAirport我正在添加更多测试并开始看到机场代码中的冲突:例如,工厂创建了一个代码为“XYZ”的机场,然后对工厂的后续调用尝试创建一个具有相同代码的机场。序列是解决这个问题的一种方法。例如,使用FactoryGirl序列、有序列表或预先计算的枚举,以及维护下一个可用代码状态的类似方法。我的问题是:解决这个问题的非序列方法是什么?我想使用随机数据,不是序列。我

ruby-on-rails - RoR - 哪个是首选 - 机架中间件或主动 Controller 过滤器?

对于最新版本的RubyonRails(问这个问题时是4),实现修改请求/响应(例如身份验证机制)的代码的首选方法是什么。我看到许多网站和教程提倡Rackmiddleware虽然似乎可以通过ActionControllerfiltermethods实现相同的功能.除了讨论首选方法外,是否可以提供每种方法的优缺点比较?在我最初的调查中,ActionController过滤器方法似乎更紧密地集成到RoR应用程序中,这样您就可以绕过在某些Controller端点上运行某些过滤器,而中间件似乎无法拥有该级别的控制。这样的细节会很棒。谢谢! 最佳答案

ruby-on-rails - 获取子类的名称

比方说我有我的课叫a=Person::User::Base如何只获取最后一个名为Base的子类。我知道如何做到这一点的方式是:a.to_s.split('::').last=>"Base"有没有更好的办法? 最佳答案 如果您使用Rails(ActiveSupport):a.to_s.demodulize如果您使用POR(plain-ol-Ruby),是的,这是您的方式:a.to_s.split('::').last 关于ruby-on-rails-获取子类的名称,我们在StackOver

ruby-on-rails - object.count 返回 0。但是 object.any?返回真。发生了什么?

@card.submissions返回:]>@card.submissions.any?返回true。@card.submissions.count返回0。我要实现的是:if@card.submissions.any?render@card.submissionsend 最佳答案 看起来Submission是一个新记录(因为id是nil)。如果它是新的,它还没有进入数据库。count对数据库进行SQL调用以确定行数,因此正确地返回零。any?返回true,因为集合中有一个对象。如果您尝试@card.submissions.to_a.