草庐IT

ruby-on-rails - 如何找出哪些模块是 Rails 中某个类的混入?

我是Ruby/Rails新手。这是一个令我困惑的问题:我们能否从API文档中找到Rails中某个类的确切模块列表混合?例如,如果我们有一个ActiveRecord::Base子类的实例,我们可以在这个类中使用validates方法,如下所示:classProducttrueend从railsapi文档我们可以发现validates属于ActiveModel::Validations::ClassMethods,所以ActiveRecore::Base必须有ActiveModel::Validations::ClassMethodsmixin,但我没有在接口(interface)引用。谁

ruby-on-rails - ActiveRecord find_or_build_by

我想执行:XXX.find_or_build_by_language_id(attributes)我找到了XXX.find_or_initialize_by_language_id(attributes)但这只设置了language_id而没有其他属性。即使我手动设置属性,当我执行XXX.save时记录也不会被保存。我刚刚读了Rails-findorcreate-isthereafindorbuild?,这似乎与我的问题有关,但不符合我的需要。编辑让我们使用这个场景#db/migrations/create_models.rbclassCreateModels-#app/models/

ruby-on-rails - capybara 'drag & drop' 不工作

我在Mac上使用cucumber/capybara/selenium/firefox。除了d&d之外,一切都很好。可通过drag_node.drag_to(drop_node)进行拖放操作。调用时,它不会引发任何错误,但实际的拖放操作从未发生。现在我找到了thissampleapp,而不是复制粘贴点点滴滴。(由一个显然有类似问题的人写的)证明了这个问题。但是Google并不知道drag_to()被破坏了。据我所知。这给了我希望是我遗漏了一些东西而不是错误。那是什么?我错过了什么?错误? 最佳答案 对我来说,#drag_to确实有用,

ruby-on-rails - capistrano - NameError:未初始化的常量 Net::SSH::KnownHosts::SUPPORTED_TYPE

我正在尝试将我的Rails(3.1.3)应用程序部署到预生产环境。我使用capistrano(2.12.0)和rvm-capistrano(1.2.2)。当我调用bundleexeccapssh时,它工作正常。但是当我调用bundleexeccapdeploy时,我得到以下跟踪:$capdeploytriggeringstartcallbacksfor`deploy'*18:42:19==Currentlyexecuting`multistage:ensure'***Defaultingto`preprod'*18:42:19==Currentlyexecuting`preprod'*

ruby-on-rails - 我如何序列化 - 反序列化哈希以将其保存在数据库中?

我有一个散列:h={"revision"=>7,"rev"=>"708a4bd5b","thumb_exists"=>false,"bytes"=>246000,"modified"=>"Sun,01Jul201217:09:15+0000","client_mtime"=>"Sun,01Jul201217:09:15+0000","path"=>"/GettingStarted.pdf","is_dir"=>false,"icon"=>"page_white_acrobat","root"=>"dropbox","mime_type"=>"application/pdf","size

ruby - 在开发环境中使用 rails server 启动 Sidekiq

我正在使用Sidekiq对于我的一些后台进程。目前我做的是:在一个终端上启动bundleexecrailss,然后在另一个终端上启动bundleexecsidekiq,以便sidekiq自行启动并寻找要处理的作业。我想要的是:一旦我启动bundleexecrailss,它也应该启动sidekiqbundleexecsidekiq。我怎样才能将它集成到开发环境中?? 最佳答案 对于像您这样需要运行大量服务的应用,请考虑使用foreman和一个Procfile来定义这些进程。然后您可以使用foremanstart在一个终端中运行所有这些

ruby-on-rails - 重定向到某个页面而不是 :notice when non-confirmed user logs in

如何将登录到特定页面的未确认用户重定向到某个页面而不是显示:notice(“您必须确认您的帐户”)。使用Devisegem(最新)这个问题:(Devise-Redirectedtopageifaccountisn'tconfirmed)提供了这个解决方案:#config/initializers/my_strategy.rbWarden::Strategies.add(:my_strategy)dodefvalid?trueenddefauthenticate!u=User.find_for_authentication(:email=>params[:email])ifu.nil?|

ruby-on-rails - 杀死工头产生的进程

我有以下Procfile:web:bundleexecunicorn-p$PORT-c./config/unicorn.rbredis:bundleexecredis-server/usr/local/etc/redis.confworker:bundleexecsidekiq运行$foremanstart启动Unicorn、Redis和Sidekiq,但我应该如何停止它们?杀死工头会使这三个人都离开。我可以使用ps看到这个:$psaux|grepredis|grep-vgrepme615600.00.025067841740s000S+9:36am0:01.28redis-serve

ruby-on-rails - 在带有 Ruby on Rails 的 PostgreSQL 中使用间隔

我想从我的Rails应用程序中将持续时间(2天、5年...)保存为PostgreSQL中的间隔。duration_min和duration_max都是类似“2天”或“5年”的值,因此它们各自都是一个间隔:defchangecreate_table:timesdo|t|t.interval:duration_mint.interval:duration_maxt.timestampsendend但是当将数据类型设置为“interval”并且rake返回时,数据库迁移失败:undefinedmethod'interval'for#我如何定义表格以使其接受(并理解)像“2天”这样的输入?

ruby-on-rails - 渲染联接模型及其关联模型的JSON对象

在Rails(4.1.5/ruby​​2.0.0p481/win64)应用程序中,我在Student和Course之间建立了多对多关系,并表示了该关联的联接模型StudentCourse并具有和附加属性,称为start(set默认情况下为“false”)。我还在由student_id和course_id组成的联接表中添加了一个索引,并对此设置了唯一的检查,就像这样t.index[:student_id,:course_id],:unique=>true,:name=>'by_student_and_course'我希望将其用作复合主键,但是由于在Rails中没有复合主键(不使用gem)