これは些細な問題のように思えるかもしれませんが、どこにも答えが見つからないようです (これは、Rails が私がしていることに眉をひそめているためかもしれません)。
Sidekiq を使用してバックグラウンド タスク (画像処理、アップロードなど) を処理していますが、それらが終了したら、現在のページを別のページにリダイレクトするか、部分的にレンダリングすることをお勧めします。
perform メソッドの現在のコードは次のようになります。
def perform(entry_id)
@entry = Entry.find(entry_id)
#Create, upload image, all stored in @file when complete
if @file.save
#render will go here
else
raise @file.inspect
end
end
そのため、次のようないくつかの方法を試しました。
render 'entry/new'
また
render :partial => 'entry/partial'
と
redirect_to @entry, notice: 'File Uploaded'
私もこの恐ろしいハックを試しました:
entry_controller.rb
# Called after the background task is completed
def self.done_loading(entry_id)
@entry = Entry.find(entry_id)
@entry.update
end
worker.rb
EntriesController.done_loading(entry_id)
私は何を間違っていますか?
参照 (私が調べたもの): エラー検証を処理するときに render と redirect_to をいつ使用するか