ステージング サーバーでは、実稼働環境で Rails アプリケーションを実行し、実稼働サーバーとできるだけ同じようにします。crontab を作成するために when を使用しています。ただし、Google と Bing に ping を送信しないように、サイトマップ生成用に少し異なる rake タスクを実行する必要があります。
deploy.rb には:
set :stages, %w(production staging)がありますが、deploy/staging.rb と deploy/production.rb の両方に:rails_env, "production"設定しているため、使用できませんRails.env。
でschedule.rb、次のようなことをしたい:
every :day, at: '1am' do
if @stage == 'production'
rake 'sitemap:refresh'
else
rake 'sitemap:refresh:no_ping'
end
end
その変数を利用可能にするにはどうすればよいですか?
アップデート
置くことで解決できました
set :whenever_variables, defer { "stage=#{stage}" }
私の deploy/staging.rb に。@stageその後、schedule.rbにアクセスできました