草庐IT

before_migrate

全部标签

ruby-on-rails - Ruby on Rails2.3.8 : Unit Testing: Rails/Ruby has setup to run before each test. 在所有测试之前运行的方法怎么样?

我想在每次运行测试时初始化数据库一次,而不是每次测试。我知道Rspec有before(:all),但我无法让它工作。我想知道Rails是否有类似的东西。 最佳答案 首先:在Test::Unit中曾经有一个before(:all)等价物,但它被删除了(不知道为什么)。其次:有很好的理由不做你想做的事——测试应该相互独立运行,而不是依赖于数据库中的状态。这样您就可以保证它完全测试您期望它测试的内容。如果您有一个更改数据库状态的测试,并且您移动它并且它在另一个期望它是另一种状态的测试之后运行-您会遇到问题。因此,所有测试必须是独立的。因此

ruby-on-rails - before_filter 与另一个 Controller

如果用户已登录,我正在尝试创建一个将检查每个页面的操作。为此,在ControllerHome中我创建了这个方法:defcheck_sessionif!session[:user_id]redirect_to:action=>'login'endend我把这段代码放在Controller的头部:before_filter:check_session,:except=>[:sub_layout,:authenticate,:login]现在我想在Home页面之外使用check_session,比如在Users页面中。在before_filter中调用不同Controller的方法的正确语法

ruby-on-rails - ActiveRecord::Base:Class 的未定义方法 `migration_error='

当我运行bundleexecrakedb:migrate--trace时,出现以下错误。C:\Sites\rails_projects\sample_app>bundleexecrakedb:migrate--trace**Invokedb:migrate(first_time)**Invokeenvironment(first_time)**Executeenvironmentrakeaborted!undefinedmethod`migration_error='forActiveRecord::Base:ClassC:/RailsInstaller/Ruby1.9.3/lib/r

ruby - NameError:未初始化的常量 ActiveRecord::Migrator::Zlib

我是Ruby和ActiveRecord的新手。我正在尝试使用以下命令运行我的第一次迁移:rakedb:migrate我一直收到这个错误:NameError:uninitializedconstantActiveRecord::Migrator::Zlib.我尝试过不同的项目,所有迁移都出现此错误。 最佳答案 我不知道这是怎么回事,花了我一整天的时间来寻找解决方案在你的environment.rb的顶部require'zlib'这对我有用:) 关于ruby-NameError:未初始化的常

ruby-on-rails - 在 rails/migrations 中更新模型

假设我使用以下命令创建了一个“用户”模型:script/generatemodelUserusername:string这将创建user.rb文件以及迁移rb文件以创建用户表。现在,我想向我的用户模型添加一个电子邮件列。最好的方法是什么?我是手动执行并手动编写迁移文件还是有快捷方式?如果我手写迁移,是否必须和之前的迁移脚本一样命名(前面加时间戳)才能保证在之前的迁移之后运行? 最佳答案 不要担心时间戳。它将自动生成。你可以做一个railsgeneratemigrationadd_email_to_useremail:string这会

ruby-on-rails - Rails Migration Change vs Up & Down 方法

我正在阅读RailsTestPrescriptions这本书,在设置过程中它要求我将迁移文件更改为以下内容:classProjectUserJointrue,:id=>falsedo|t|t.references:projectt.references:usert.timestampsendenddefself.downdrop_table:projects_usersendend看来我在Rails(4.0.0)上使用的版本比本书(2或3.x)更高,我的迁移文件如下所示:classProjectUserJoin如何编辑change方法以实现与上述up和down方法相同的效果?到目前为止

ruby-on-rails - Rails db :migrate aborting. ..不知道为什么或如何修复它

所以我真的是Rails的新手,我遇到了一个我不明白的奇怪错误。我创建了一个事件模型,我想将它迁移到我的数据库中。但是,当我运行bundleexecrakedb:migrate--trace时,我得到的是:05:55PMmovienights:bundleexecrakedb:migrate--trace**Invokedb:migrate(first_time)**Invokeenvironment(first_time)**Executeenvironment**Invokedb:load_config(first_time)**Invokerails_env(first_time)

C++模板编译错误: expected primary-expression before ‘>’ token

这个问题在这里已经有了答案:WhereandwhydoIhavetoputthe"template"and"typename"keywords?(8个回答)关闭6个月前。此代码按预期编译和工作(它在运行时抛出,但没关系):#include#includevoidfoo(boost::property_tree::ptree&pt){std::cout("path");//但只要我添加模板并更改foo原型(prototype)成templatevoidfoo(ptree&pt)我在GCC中遇到错误:test_ptree.cpp:Infunction‘voidfoo(ptree&)’:te

C++模板编译错误: expected primary-expression before ‘>’ token

这个问题在这里已经有了答案:WhereandwhydoIhavetoputthe"template"and"typename"keywords?(8个回答)关闭6个月前。此代码按预期编译和工作(它在运行时抛出,但没关系):#include#includevoidfoo(boost::property_tree::ptree&pt){std::cout("path");//但只要我添加模板并更改foo原型(prototype)成templatevoidfoo(ptree&pt)我在GCC中遇到错误:test_ptree.cpp:Infunction‘voidfoo(ptree&)’:te

c++ - 错误 : expected class-name before ‘{’ token

我知道在stackoverflow和其他网站上有几个类似的问题(循环包括)。但我仍然无法弄清楚,也没有解决方案弹出。所以我想发布我的具体内容。我有一个Event类,它有2个甚至更多子类,即Arrival和Landing。编译器(g++)提示:g++-c-Wall-g-DDEBUGEvent.cpp-oEvent.oInfileincludedfromEvent.h:15,fromEvent.cpp:8:Landing.h:13:error:expectedclass-namebefore‘{’tokenmake:***[Event.o]Error1人们说这是一个循环包含。3个头文件(E