ユーザーがフォームを送信すると「新しい」ビューでメッセージをフラッシュする必要がありますが、コントローラーが「表示」ビューにリダイレクトされる前にが点滅します。Railsはリダイレクト前の現在の表示でフラッシュ通知を返します
フォームの送信時にcreateメソッドから.shスクリプトを実行します。スクリプトの実行には数分かかります。フォームは「新しい」ビューの内側に配置されます。フォームなどはすべて、標準的な規則を使用して足場を張っていました。
.shスクリプトが実行されてコントローラがリダイレクトされる前に、「新しい」ビューでメッセージをフラッシュするにはどうすればよいですか?
new.html.erb:
<p id="notice"><%= notice %></p>
<h1>New Job</h1>
<%= render 'form' %>
jobs_controller:Railsはクライアント(ブラウザ)に応答を送信したときにのみ起こるので、フラッシュメッセージは起きていない
def create
@job = Job.new(job_params)
flash[:notice] = 'Job Started' #added notice here but it doesn't flash in the "new" view
respond_to do |format|
if @job.save
format.html { redirect_to @job, notice: 'Job finished' }
format.json { render :show, status: :created, location: @job }
else
format.html { render :new }
format.json { render json: @job.errors, status: :unprocessable_entity }
end
end
job_call = 'sh testScript.sh' #var for a test sh file to run
system(job_call) #add sh script here
end
私はちょうどそれはいくつかのJSをアップ装備だが、より優れたレールソリューションがある場合は疑問に思っ... – HoosierCoder