コレクションを削除するボタンがいくつかあるので、サーバーを再起動しなくても開発/テスト中にWebサイトを元の状態に簡単に復元できます。Railsアプリケーションからseeds.rbを実行する
コントローラアクション内でseeds.rbの内容を実行するにはどうすればよいですか?
def purge
if Rails.env.production?
should_not_happen(severity: :armageddon)
else
# Well at least restore one admin account !
User.all.each(&:destroy)
regenerate_main_admin_accounts # Here I need to replay the content of `seeds.rb`
redirect_to(admin_dashboard_path)
end
end
注:私のseeds.rbファイルの内容は、データが存在するかどうかをチェック条件文と方法の広範囲に使用する、私はそれを10億回を実行することができますので、DBには重複データはないだろう私が行ったことの1%を復元するだけでも、私はそれを実行できます(ここではdev/test環境、時間/リソースの圧力はありません)。あなたは、これは良いアイデアではありません、それはセキュリティ上の問題を伴うことが<rake_command>
は、コマンドラインからrake
後に実行したいの文である場合は、あなたがRake::Task["<rake_command>"].execute
を使用することができることを認識していると仮定すると、
[コントローラのrakeタスクを実行]と同様の質問(http://stackoverflow.com/q/1170148/567863)? –