【问题标题】:Rails generate creates files in the original directory instead of the directory copyRails generate 在原始目录而不是目录副本中创建文件
【发布时间】:2015-07-10 13:52:32
【问题描述】:

我创建了一个 rails 目录的副本(比如说“A”),然后 CD 到那个副本(比如说“B”)并尝试执行“rails generate”,但文件是在原始目录中生成的(“一种”)。我也在使用 rbenv ,我想知道是否发生了一些魔法导致这种行为。我也在 OSX Yosemite 上开发。有人有任何线索吗?提前致谢。

编辑:我认为问题可能是由于 Spring gem。

【问题讨论】:

  • 没有魔法。您是说您将目录 A 复制到目录 B cp -r ./a ./b 然后将目录更改为 B (cd ../b) 然后在 B 中运行 rails g some_app?真的很难理解为什么要这样做,因为 rails dir (a) 的副本将是 rails dir (b)。
  • 目录B是目录A的副本,A和B是兄弟。 A 不在 B 中,如果你这么想的话。
  • Right -- A 是 B 的副本 -- 如果 A 是生成的 rails 应用程序,那么 B 也是,因为您复制了目录。如果我复制一个 Rails 应用程序,则该副本也是一个 Rails 应用程序。所以你不需要再次生成它。绝对不涉及任何魔法,所以也许描述你正在尝试做什么会有所帮助。
  • 在 B 中,我正在尝试生成一个新控制器。我不希望它在 A 中。

标签: ruby-on-rails ruby ruby-on-rails-4 rbenv


【解决方案1】:

你可能已经制作了目录 A 的软拷贝。我的意思是你把它做成了 A 的 symbolink。让我解释一下 symbolink,symbolink 基本上是制作原始目录的虚拟副本,但原始目录保持不变。并且无论您在新目录中所做的任何更改,它们都会在原始目录中生效。

【讨论】:

  • 这是一个很好的观点——软拷贝完全会像这样。
  • 嗯,我认为问题可能是由于 Spring gem。
【解决方案2】:

问题似乎出在 Spring gem 上。在停止 Spring 进程并卸载它之后,我能够在目录中创建控制器。我是 Rails 新手,并没有意识到 Spring 做了什么。它使您的 Rails 应用程序在后台运行,并且还更改了 rails 二进制文件以实现其功能。因此,当我将该目录复制到新目录时。我推测我想对副本进行的所有更改都以某种方式被重定向到旧目录,因为旧目录是 Spring 进程的启动位置。呃。

【讨论】:

  • 为什么这被否决了?它解决了我的问题,可能对 Rails 4 的新手有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-07
  • 2012-08-18
  • 1970-01-01
  • 2013-10-11
  • 1970-01-01
  • 2011-07-26
  • 2012-12-06
相关资源
最近更新 更多