Rails3:如何使用 shell 脚本执行 Rails 命令(如“railsgenerate”)

发布于 2024-12-12 10:35:02 字数 273 浏览 1 评论 0原文

我需要能够通过执行 Linux shell 脚本来生成模型(以及稍后的迁移)。

该脚本直接位于应用程序文件夹中,如下所示:

#!/bin/bash

cd /home/<my_user_profile>/Websites/<my_app_name>
rails g model my_model name:string accepted:boolean [etc...]

问题是:当我执行脚本时,不会创建模型。有什么想法吗?

I need to be able to generate a model (and later a migration) by executing a Linux shell script.

The script is located directly in the app folder and looks like this:

#!/bin/bash

cd /home/<my_user_profile>/Websites/<my_app_name>
rails g model my_model name:string accepted:boolean [etc...]

The problem is: When I execute the script, the model does not get created. Any ideas why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

司马昭之心 2024-12-19 10:35:02

尝试

exec "rails g model my_model name:string accepted:boolean"

Try

exec "rails g model my_model name:string accepted:boolean"
平安喜乐 2024-12-19 10:35:02

为了确保它在您的 shell 所在的相同上下文中执行,请删除 shebang 以避免启动另一个可能与您当前的 shell 相同或不同的 bash

如果您使用的是 rvm/similar,则需要 (a) 有一个默认值,(b) 指定版本/gemset,或者 (c) 依赖类似 rvm 的 cd 欺骗。

否则,应该工作得很好——它适合我(没有 shebang,所以它将使用我当前所处的任何 rvm 环境)。

To make sure it's executing in the same context your shell is in, remove the shebang to avoid starting up another bash which may or may not be the same as your current shell.

If you're using rvm/similar, you'd need to either (a) have a default, (b) specify version/gemset, or (c) rely on rvm-like cd fudgery.

Otherwise, should work just fine--it is for me (w/o the shebang, so it'll use whatever current rvm environment I'm in).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文