您可以直接从 Heroku 控制台编辑 .erb 文件吗?
Can you edit a .erb file directly from the Heroku Console?
我想知道这是否由于版本控制而无法实现。但是,我想知道是否有一种方法可以直接查看 .html.erb 文件中的代码并对其进行编辑以对拼写错误进行小的更改,而无需重新部署整个应用程序。
我打开了 Heroku 控制台,输入 Dir.chdir "app/views/pages"
。这将我带到目录中的正确文件夹。
√ _testApps/[app_name] % heroku console
irb(main):001:0> Dir.chdir "app/views/pages"
=> 0
然后我可以 Dir.glob("*.erb")
查看该目录中具有该扩展名的所有文件的列表。
irb(main):002:0> Dir.glob("*.erb")
=> ["sitemap.html.erb", "about.html.erb", "home.html.erb", "guide.html.erb",
"media_kit.html.erb", "social.html.erb", "terms_of_use.html.erb", "aids.html.erb",
"expectations.html.erb", "faq.html.erb", "privacy_policy.html.erb", "contact_us.html.erb"]
现在,我想要做的是您可以在开发中更改凭据所做的事情 nano rails credentials:edit
。但是,nano rails home.html.erb:edit
或 nano rails home:edit
不起作用。这是我尝试过的所有各种方式的输出:
irb(main):003:0> nano rails home.html.erb:edit
Traceback (most recent call last):
1: from (irb):3
NameError (undefined local variable or method `home' for main:Object)
irb(main):004:0> nano rails home:edit
Traceback (most recent call last):
2: from (irb):3
1: from (irb):4:in `rescue in irb_binding'
NameError (undefined local variable or method `edit' for main:Object)
Did you mean? exit
irb(main):005:0> nano home:edit
Traceback (most recent call last):
2: from (irb):4
1: from (irb):5:in `rescue in irb_binding'
NameError (undefined local variable or method `edit' for main:Object)
Did you mean? exit
irb(main):006:0> home:edit
Traceback (most recent call last):
2: from (irb):5
1: from (irb):6:in `rescue in irb_binding'
NoMethodError (undefined method `home' for main:Object)
irb(main):007:0> home.html.erb:edit
Traceback (most recent call last):
2: from (irb):6
1: from (irb):7:in `rescue in irb_binding'
NameError (undefined local variable or method `home' for main:Object)
irb(main):008:0> edit home.html.erb
Traceback (most recent call last):
2: from (irb):7
1: from (irb):8:in `rescue in irb_binding'
NameError (undefined local variable or method `home' for main:Object)
irb(main):009:0> edit home
Traceback (most recent call last):
2: from (irb):8
1: from (irb):9:in `rescue in irb_binding'
NameError (undefined local variable or method `home' for main:Object)
irb(main):010:0> edit "home.html.erb"
Traceback (most recent call last):
2: from (irb):9
1: from (irb):10:in `rescue in irb_binding'
NoMethodError (undefined method `edit' for main:Object)
Did you mean? exit
这可能吗?还是因为版本控制不允许,必须在本地做,commit到git然后pushgitmaster去改?想知道,因为无需执行所有其他步骤即可进行快速编辑会很好。并且无需使页面动态化并将信息存储在 table 中以在浏览器中进行编辑。
感谢您的见解。
首先(留待以后参考),您似乎将控制台当作 bash shell,但 heroku console
只是启动 Rails 安慰。因此,nano rails...
之类的东西不起作用,因为它们无效 ruby。 运行 heroku run bash
将启动一次性测功机并给你一个 bash shell.
要回答您的主要问题,推送 git 分支是推送更改的方法。关于 Heroku,有几件事需要了解,这有助于解释原因:
- 当您 运行
heroku run bash
时,Heroku 会为该会话启动一个单独的一次性测功机,其中包含您的应用程序文件结构的副本。这对于故障排除非常有用,但它实际上并没有以任何方式将您连接到 dyno 运行ning 您的应用程序。因此,如果您在那里编辑文件,它不会影响 运行ning 应用程序代码。
- 当您将图像推送到 Heroku 时,它会构建一个预先打包的图像
您的应用程序称为 slug。每当您重新启动您的应用程序时,它就是
从那些 slug 重新加载,所以即使你使用 hack 连接到
你的 运行ning dyno 并更改了一个文件,它只会持续到
下次应用重新启动时。
我想知道这是否由于版本控制而无法实现。但是,我想知道是否有一种方法可以直接查看 .html.erb 文件中的代码并对其进行编辑以对拼写错误进行小的更改,而无需重新部署整个应用程序。
我打开了 Heroku 控制台,输入 Dir.chdir "app/views/pages"
。这将我带到目录中的正确文件夹。
√ _testApps/[app_name] % heroku console
irb(main):001:0> Dir.chdir "app/views/pages"
=> 0
然后我可以 Dir.glob("*.erb")
查看该目录中具有该扩展名的所有文件的列表。
irb(main):002:0> Dir.glob("*.erb")
=> ["sitemap.html.erb", "about.html.erb", "home.html.erb", "guide.html.erb",
"media_kit.html.erb", "social.html.erb", "terms_of_use.html.erb", "aids.html.erb",
"expectations.html.erb", "faq.html.erb", "privacy_policy.html.erb", "contact_us.html.erb"]
现在,我想要做的是您可以在开发中更改凭据所做的事情 nano rails credentials:edit
。但是,nano rails home.html.erb:edit
或 nano rails home:edit
不起作用。这是我尝试过的所有各种方式的输出:
irb(main):003:0> nano rails home.html.erb:edit
Traceback (most recent call last):
1: from (irb):3
NameError (undefined local variable or method `home' for main:Object)
irb(main):004:0> nano rails home:edit
Traceback (most recent call last):
2: from (irb):3
1: from (irb):4:in `rescue in irb_binding'
NameError (undefined local variable or method `edit' for main:Object)
Did you mean? exit
irb(main):005:0> nano home:edit
Traceback (most recent call last):
2: from (irb):4
1: from (irb):5:in `rescue in irb_binding'
NameError (undefined local variable or method `edit' for main:Object)
Did you mean? exit
irb(main):006:0> home:edit
Traceback (most recent call last):
2: from (irb):5
1: from (irb):6:in `rescue in irb_binding'
NoMethodError (undefined method `home' for main:Object)
irb(main):007:0> home.html.erb:edit
Traceback (most recent call last):
2: from (irb):6
1: from (irb):7:in `rescue in irb_binding'
NameError (undefined local variable or method `home' for main:Object)
irb(main):008:0> edit home.html.erb
Traceback (most recent call last):
2: from (irb):7
1: from (irb):8:in `rescue in irb_binding'
NameError (undefined local variable or method `home' for main:Object)
irb(main):009:0> edit home
Traceback (most recent call last):
2: from (irb):8
1: from (irb):9:in `rescue in irb_binding'
NameError (undefined local variable or method `home' for main:Object)
irb(main):010:0> edit "home.html.erb"
Traceback (most recent call last):
2: from (irb):9
1: from (irb):10:in `rescue in irb_binding'
NoMethodError (undefined method `edit' for main:Object)
Did you mean? exit
这可能吗?还是因为版本控制不允许,必须在本地做,commit到git然后pushgitmaster去改?想知道,因为无需执行所有其他步骤即可进行快速编辑会很好。并且无需使页面动态化并将信息存储在 table 中以在浏览器中进行编辑。
感谢您的见解。
首先(留待以后参考),您似乎将控制台当作 bash shell,但 heroku console
只是启动 Rails 安慰。因此,nano rails...
之类的东西不起作用,因为它们无效 ruby。 运行 heroku run bash
将启动一次性测功机并给你一个 bash shell.
要回答您的主要问题,推送 git 分支是推送更改的方法。关于 Heroku,有几件事需要了解,这有助于解释原因:
- 当您 运行
heroku run bash
时,Heroku 会为该会话启动一个单独的一次性测功机,其中包含您的应用程序文件结构的副本。这对于故障排除非常有用,但它实际上并没有以任何方式将您连接到 dyno 运行ning 您的应用程序。因此,如果您在那里编辑文件,它不会影响 运行ning 应用程序代码。 - 当您将图像推送到 Heroku 时,它会构建一个预先打包的图像 您的应用程序称为 slug。每当您重新启动您的应用程序时,它就是 从那些 slug 重新加载,所以即使你使用 hack 连接到 你的 运行ning dyno 并更改了一个文件,它只会持续到 下次应用重新启动时。