相关疑难解决方法(0)

如何在rails控制台中重新加载模型?

> rvm list
rvm rubies

=* ruby-1.9.2-p290 [ i686 ]
   ruby-1.9.3-p194 [ i686 ]

> rails -v
Rails 3.1.1
Run Code Online (Sandbox Code Playgroud)

相关,但没有回答:是否有Rails控制台命令(Rails 3+)重新加载更改的代码?

我正在使用Rails控制台尝试找出为什么我的模型中的方法没有被调用.该模型位于./app/models/product.rb中.我被称为改变方法self.trim_historytrim_history.我还在缠着我的头来调用方法self.do_stuff或者只是do_stuff.

在弄清楚这个问题的过程中,我遇到了一个问题reload!.我的理解是,它reload!会再次加载所有模型和控制器,但这似乎不起作用.当我调试我的代码时,我改变的行do_stuff仍然显示self.do_stuff在调试器中.

我试图解决这个问题reload!,没有解决办法.重新加载后我从数据库重新加载了对象,没有修复.我已直接加载模型load './app/models/product.rb',然后从db加载对象,没有修复.我已经验证了该对象正在被更改tail.

在rails控制台中重新加载模型的最佳方法是什么?每次模型代码更改时,是否必须重新启动控制台?有没有办法在不重新加载控制台的情况下转储所有现有模型及其代码?

编辑:这个变得陌生.我现在怀疑我的代码正在重新加载,但调试器没有反映新代码.当我单步执行代码时,旧代码就在那里,但新代码正在执行.我通过在调试器中添加一个raise- raisenever show来测试它,但它被引发了.笏?

我是否需要使用调试器来查看重新加载的代码?这看起来像个bug ...

ruby ruby-on-rails ruby-on-rails-3

7
推荐指数
1
解决办法
8668
查看次数

Rails控制台是否重新加载初始化程序?

我正在使用Rails控制台手动测试一些东西,发现我的一个初始化器(在config/initializers下)有一个错误.我退出控制台,进行了更改,再次运行"rails c".令我惊讶的是,更新的初始化程序未执行.

这是我发现的:

- 如果我启动一个新的Bash会话并输入"rails c",则执行所有初始化程序.

- 如果我添加/更改初始化程序,然后在同一个Bash会话中重新运行"rails c",则不会执行初始值设定项.

这在禁用缓存的开发中发生.

到底他妈发生了什么?谢谢.

ruby ruby-on-rails

3
推荐指数
1
解决办法
2981
查看次数

标签 统计

ruby ×2

ruby-on-rails ×2

ruby-on-rails-3 ×1