QA@IT
«回答へ戻る

回答を投稿

返事遅れてすいません。長くなる+ソースがあるので回答で返事をさせていただきます。

結果からいうと、ご回答いただいた、

within(current_path){ bundle "exec", "unicorn_rails", ... }

でうまくいけました。

ただいくつかこのGemを使う上ではまったので、書かせていただきます。

set :rvm_ruby_version, "ruby-1.9.3-p194"

execute :bundle

こうやって実行すると。

/bin/rvm ruby-1.9.3-p194 do bundle

が実行され、

bash: /bin/rvm: No such file or directory

になりました。

そこでgemにpryを引っ掛けてみると、[:rvm_path]/bin/rvmの様に書かれていて、fetch(:rvm_path)が空なことが原因の様でした。

そこでrvm_pathを指定して、

set :rvm_ruby_version, "ruby-1.9.3-p194"
set :rvm_path,"~/.rvm"

namespace :deploy do
  desc 'Restart application'

  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      within("railsproject_path") do
        execute :bundle,"exec unicorn_rails"
      end
    end
  end
end

の様に実行するとうまくいきました。ありがとうございました。

返事遅れてすいません。長くなる+ソースがあるので回答で返事をさせていただきます。

結果からいうと、ご回答いただいた、
> within(current_path){ bundle "exec", "unicorn_rails", ... }

でうまくいけました。

ただいくつかこのGemを使う上ではまったので、書かせていただきます。

```rb
set :rvm_ruby_version, "ruby-1.9.3-p194"

execute :bundle
```
こうやって実行すると。

```sh
/bin/rvm ruby-1.9.3-p194 do bundle
```
が実行され、

```sh
bash: /bin/rvm: No such file or directory
```
になりました。

そこでgemにpryを引っ掛けてみると、[:rvm_path]/bin/rvmの様に書かれていて、fetch(:rvm_path)が空なことが原因の様でした。

そこでrvm_pathを指定して、

```ruby
set :rvm_ruby_version, "ruby-1.9.3-p194"
set :rvm_path,"~/.rvm"

namespace :deploy do
  desc 'Restart application'

  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      within("railsproject_path") do
        execute :bundle,"exec unicorn_rails"
      end
    end
  end
end
```

の様に実行するとうまくいきました。ありがとうございました。