Rails:每次使用控制台更改代码时重新启动服务器

Posted

技术标签:

【中文标题】Rails:每次使用控制台更改代码时重新启动服务器【英文标题】:Rails: Restarting the server each time make change in code using console 【发布时间】:2014-11-06 13:35:19 【问题描述】:

我正在使用 rails c 命令从控制台访问我的控制器方法。我面临的问题是,每次我反映代码中所做的任何更改时,我都必须先退出并重新启动。这些有什么办法可以解决这个问题吗?

【问题讨论】:

您能否显示您正在运行哪个命令来获取控制台中的数据? 我只是在调用某个类的静态方法,这个方法在屏幕上打印输出 重新加载!没有按预期工作,因此排除了该选项 您需要准确说明问题所在。不可能帮助您进行打击和试验以及假设。 【参考方案1】:

在您的 Rails 控制台中,输入 reload!

2.1.2 :012 > reload!
Reloading...
 => true
2.1.2 :013 >

重新加载所有 Rails 应用程序代码。无需退出并重新启动控制台!

【讨论】:

是的,但是有一个警告:如果您有任何预先存在的对象,它们仍将基于以前的代码。因此,在 reload! 命令之后重新初始化您正在使用的任何对象非常重要。 ^^ 没错! + 这些对象将没有更新代码的更新方法,您最终可能会遇到奇怪的错误!【参考方案2】:

如果你有关联,你可以这样做:

class home
  belongs_to :renter
end

class renter
  has_one :home
end

假设你从 home 属性开始:

home = Home.where(renter_id: 1)
  => #< Home id: 1, alarm: "no">
renter = Renter.find(1)
renter.home.alarm
  => "no"

然后你修改home:

home.alarm = "yes"
home.save

当你这样做时:

renter.home
  => #< Home id: 1, alarm: "no">   # it still returns no
renter.home(true)
  => #< Home id: 1, alarm: "yes">"  
        # you can use (true) to make sure your association 
        # change is reflected, it basically queries the server again

【讨论】:

以上是关于Rails:每次使用控制台更改代码时重新启动服务器的主要内容,如果未能解决你的问题,请参考以下文章

Rails 6 + Webpack + jQuery 刷新时不保存更改

我应该在每次使用 ExpressJS/Node 更改时重新启动应用程序服务器吗? [复制]

Rails 服务器看不到代码更改并重新加载文件

每次我需要进行 React 更改时如何避免重新启动服务器?

WebStorm,使用 Node Supervisor(所以每次代码更改后不必重新启动)?

Ruby on Rails 3 - 为每个请求重新加载 lib 目录