这似乎是一个微不足道的问题,但我似乎无法在任何地方找到答案(这可能是因为 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
工人.rb
EntriesController.done_loading(entry_id)
我究竟做错了什么?
参考资料(我查过的东西): 在处理错误验证时,何时使用 render 与 redirect_to