Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails控制台应用程序初始化_Ruby On Rails_Ruby On Rails 4_Initialization_Rubygems - Fatal编程技术网

Ruby on rails Rails控制台应用程序初始化

Ruby on rails Rails控制台应用程序初始化,ruby-on-rails,ruby-on-rails-4,initialization,rubygems,Ruby On Rails,Ruby On Rails 4,Initialization,Rubygems,今晚我创建了一个新的rails应用程序(4.2.5版),在ActiveRecord和ActiveModel中进行了一些实验。在修改一些gems代码后,我注意到在启动/重新启动rails控制台时出现了一些意外行为 例子 运行bundle open activemodel使用p语句修改方法,保存文件。(截断的代码段) 打开rails c调用将调用此方法的内容 Loading development environment (Rails 4.2.5) 2.2.2 :001 > 2.2.2 :0

今晚我创建了一个新的rails应用程序(4.2.5版),在
ActiveRecord
ActiveModel
中进行了一些实验。在修改一些gems代码后,我注意到在启动/重新启动rails控制台时出现了一些意外行为

例子
  • 运行
    bundle open activemodel
    使用
    p
    语句修改方法,保存文件。(截断的代码段)

  • 打开rails c调用将调用此方法的内容

    Loading development environment (Rails 4.2.5)
    2.2.2 :001 >
    2.2.2 :001 > Product.new
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
    "+++++++++++++++++++++++++++++++++++++++++++++++++++"
     => #<Product id: nil, in_stock: nil, name: nil>
    2.2.2 :002 >
    
  • 正在运行
    重新加载并重新调用
    产品。new
    提供与步骤2相同的输出。退出rails控制台并使用
    rails c
    重新启动也会得到与步骤2相同的输出

  • 期望问题 我希望退出rails控制台并重新启动将“重新初始化”rails加载过程(因此重新加载
    ActiveModel
    ),但情况似乎并非如此。我发现看到所反映的更改的唯一方法是完全退出shell

    如果有人能解释为什么我必须完全退出外壳才能看到我在gem中所做的更改?我不应该简单地退出/重新启动rails控制台吗


    我从浏览中得到的印象是,调用
    rails c
    将启动启动序列,就像
    rails s
    谢谢

    我看到这种设置影响了这种行为:

    在config/environments/development.rb上

    打开

    config.eager_load = true
    

    我见过这种环境会影响这种行为:

    在config/environments/development.rb上

    打开

    config.eager_load = true
    

    你残疾了吗?您可以尝试使用
    spring stop
    停止spring服务器。退出shell时,spring进程将被终止,因此这可以解释您看到的行为。@taglia,是的,它是spring。实际上,我刚刚从
    Gemfile
    中删除了它,并运行了
    bin/spring-binstub--remove--all
    。这只是我的一些实验。在那之后,我的行为和我预期的一样。谢谢看起来答案是,看起来答案是。你应该可以结束你的问题。你禁用了吗?您可以尝试使用
    spring stop
    停止spring服务器。退出shell时,spring进程将被终止,因此这可以解释您看到的行为。@taglia,是的,它是spring。实际上,我刚刚从
    Gemfile
    中删除了它,并运行了
    bin/spring-binstub--remove--all
    。这只是我的一些实验。在那之后,我的行为和我预期的一样。谢谢看起来答案是,看起来答案是。你应该能够结束你的问题。
    config.eager_load = true