【发布时间】:2012-05-14 07:50:48
【问题描述】:
我已经坚持了一段时间了。我正在尝试从我的可可应用程序运行 rails shell 命令来创建一个新闻 rails 应用程序。当我跑步时
~/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/bin/rails new projectname
我能够创建一个新项目。但是如果我运行这样的东西
NSString *path = @"~/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/bin/rails";
NSString *script = [NSString stringWithFormat:@"%@ new ~/Desktop/testapp", path];
system([script UTF8String]);
或者这个
- (IBAction)buildProject:(NSButton *)sender
{
NSString *path = @"~/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/bin/rails";
NSArray *args = [NSArray arrayWithObjects:@"new", @"~/Desktop/testapp", nil];
NSTask *task = [NSTask new];
[task setLaunchPath:path];
[task setArguments:args];
[task launch];
}
我收到以下错误
/Users/dylanross/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/bin/rails:7:in `require': no such file to load -- rails/cli (LoadError)
from /Users/dylanross/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/bin/rails:7
【问题讨论】:
-
RVM 在你的 shell 上执行魔法,当你打电话时会丢失。我不是 100% 确定,但您可以通过执行
/usr/bin/env ~/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/bin/rails new projectname来获得它。 -
正如@Amadan 所说,您可能需要以某种方式初始化您的 ruby 环境,事实上
system(可能使用非交互式外壳)不起作用我猜环境是在您的~/.bashrc文件。你可以试试sh -i -c ".../rails new bla"。 -
这个答案在 10.8.2 stackoverflow.com/questions/412562/… 上运行正常
标签: objective-c ruby-on-rails cocoa rvm