Sar*_*wan 29 ruby-on-rails irb
关于Rails控制台的使用,当我对模型进行一些更改时,是否每次都需要重新加载rails控制台以使该更改反映出来?
例如,我的原始代码如下:
class Article < ActiveRecord::Base
validates :title, :presence => true
validates :body, :presence => true
end
Run Code Online (Sandbox Code Playgroud)
稍后,我想添加一些额外的属性,如下所示.
class Article < ActiveRecord::Base
validates :title, :presence => true
validates :body, :presence => true
def long_title
"#{title} - #{published_at}"
end
end
Run Code Online (Sandbox Code Playgroud)
是否需要运行命令"reload!" 每次都可以做"long_title"方法调用?否则,我将收到错误,因为该属性尚未定义.为什么我们需要手动执行?
Rya*_*igg 46
是的,您需要调用,reload!
因为这将清除已加载的已加载常量,并将在控制台中引用它们时加载它们.
如果您之前有旧对象,reload!
则需要调用reload
这些单个对象或查找新对象,并在想要尝试新方法时使用它们.
作为替代方案,我真的建议您查看一个测试框架,例如RSpec,它为您的应用程序提供可重复的测试和安全网.
看起来您正在尝试使用控制台作为应用程序中新功能的测试工具,这是RSpec更适合的.控制台非常适合实验.
小智 6
rails console
不不,他们已经重装后的类引用.
如果确实如此,则必须调用文件系统来确定哪些文件已针对每个命令进行了更改.
rails server
另一方面,将在开发模式下的请求之间重新加载更改的类.
我猜你是因为rails console
启动时间而让控制台保持打开状态.我不确定你的应用程序是什么,并且不确定为什么控制台在开发期间是打开的.但是,如果您尝试验证更改,我建议您使用单元测试进行测试,或者rspec
此时您可以使用spork来加快启动时间.
归档时间: |
|
查看次数: |
15703 次 |
最近记录: |