ステージング サーバーでは、実稼働環境で 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にアクセスできました