草庐IT

ruby-on-rails - 是否可以撤消 rake db 回滚?

我不小心运行了rakedb:migrate,然后运行了rakedb:rollback。现在我之前创建的数据库表完全没有了。有什么方法可以撤消回滚,还是我应该只恢复到最近的分支? 最佳答案 您可以执行rakedb:migrate以再次执行相同的迁移。 关于ruby-on-rails-是否可以撤消rakedb回滚?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/21673253/

ruby-on-rails - 当你运行 rake :db seed twice? 时会发生什么

我是Rails的新手,我还没有找到这个问题的明确答案。假设我有Project.create!([{title:"foo",description:"bar"}])在我的seeds.rb文件中然后运行$rakedb:seed两次。数据库中是否会有两个几乎相同的条目,或者它会覆盖初始条目吗? 最佳答案 它会复制。如果要多次运行,但要防止重复。我猜你可以:在一个关键字段中使用验证,例如将validate_uniqueness_of:key_attribute像这样测试你的表的计数:如果MyClass.count==0,则创建MyClass

ruby-on-rails - 使用 db :schema:dump using rake 在遗留 oracle 数据库上进行模式转储

有谁知道用于导入遗留Oracle数据库模式的任何特定DSL实现。我试图在我现有的数据库上运行db:schema:dump我想移植到一个新的ruby​​应用程序。然而,rake在没有任何错误的情况下死了大约一半。它有点锁定。我开始寻找解决这个问题的最佳方法,并找到了如何为SQLServer覆盖某些内容但为Oracle覆盖的内容不多的示例。我基本上想引入模式并从中生成脚手架和模型。有没有更简单的方法来做到这一点,还是我必须自己发明轮子? 最佳答案 第一个问题-您使用的是原始ActiveRecordOracle适配器还是oracle_en

ruby - 无方法错误 : undefined method `+@' for "some sting":String

我的Rails应用程序今天才开始收到此错误。这是代码上下文。它在以new_host_id开头的行上抛出错误while@host_ids.include?(new_host_id)i++new_host_id=duplicate_host_id+i.to_send 最佳答案 Ruby没有有++操作符。Ruby中的成语是i+=1,是i=i+1的缩写形式。最初我认为发布的代码不正确,必须是++i才能生成该错误。然而,正如JörgWMittag在评论中解释的那样,情况并非如此:[..]Rubyallowswhitespace(includi

ruby-on-rails - Ruby on Rails,rake 数据库 :seed or db:reset - how do you dictate which mode (development/test/production)?

使用RubyonRails,当您使用rakedb:seed或db:reset重置或重新播种数据库时-您如何指定操作要处于哪种模式(开发/测试/生产)?我使用Sqlite进行开发,使用postgresql进行测试和生产——但使用不同的连接参数。我似乎无法控制Rails在我的开发箱(我在虚拟机Ubuntu13.l0中运行)或在Heroku上运行的模式。此外,当您在Heroku上运行应用时,您如何决定在哪种模式(开发/测试/生产)中运行您的应用?Heroku文档建议的方式不起作用(也就是说,将单行放入Procfile网络:bundleexecunicorn-p$PORT-E$RACK_ENV

ruby-on-rails - 另一种写法 : if some_variable && some_valiable. size == 2

在Ruby和RoR中,我经常发现自己测试对象是否存在,然后对象的属性是否符合某些条件。像这样:ifparams[:id]&¶ms[:id].size==40...dostuffend有没有更有效的方法来做到这一点?像这样的东西:ifparams[:id].size==40rescuefalse但没有使用救援? 最佳答案 在Rails2.3中,您可以使用Object#try方法:ifparams[:id].try(:size)==40#dostuffendtry在nil上调用(带任何参数)时将返回nil。希望这是有道理的。

ruby - 为什么我不能得到 rake db :migrate to work for ruby. railstutorial.org

我决定完成教程。在我创建一个新的应用程序并添加新的user:stringemail:string然后在应用程序目录中执行rakedb:migrate之后,我得到了这个输出:rakeaborted!undefinedmethod`task'for#/usr/local/rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.7/lib/rails/application.rb:215:in`initialize_tasks'/usr/local/rvm/gems/ruby-1.9.2-p180@rails3tutorial/ge

ruby-on-rails - 我如何运行 rake db :migrate in automated deploy with heroku or heroku-api gem?

我在rake任务中使用它:client=Heroku::Client.new('','heroku-api-key')client.rake'my-app-name','db:migrate'我得到的只是RestClient::UnprocessableEntity:422不可处理的实体。其他命令也行,比如client.ps('my-app-name')herokuclient.rb使用rake(app_name,cmd)所以我不确定哪里出了问题。我看不到调试响应的方法,即使在使用RESTCLIENT_LOG=stdout时也是如此。 最佳答案

Ruby 需要 'some-gem' 在控制台中工作,而不是在 Eclipse 中工作?

好吧,我正在尝试通过“机架”运行一个简单的Web服务器。所以这是我的程序:require'rubygems'require'rack'classHelloWorlddefcall(env)[200,{"Content-Type"=>"text/html"},["HelloRack!"]]endendRack::Handler::Mongrel.runHelloWorld.new,:Port=>9292如果我在控制台中运行它,它工作正常。如果我在Eclipse中运行它,它会以错误结束:/Users/MY_SUPER_SECRET_USER/.rvm/rubies/ruby-1.9.3-p

ruby-on-rails - 创建表而不在 db/migrate rails 中指定

我的article.rb模型在rails中有以下结构property:artikelnummer,type:'string',index:'not_analyzed'property:eannummer,type:'string',index:'not_analyzed'property:bezeichnung,type:'multi_field',fields:{bezeichnung:{type:'string'},ngram:{:type=>'string',:index_analyzer=>'ngram_index_analyzer',:search_analyzer=>'ng