0

請求書を作成しました。これは管理者から開くことができるはずですが、通常のユーザーとしては開くことができません。この請求書のPDFは、app / Assets/pdfsの特定のビジネスプロセスの後に作成されます。

 assets_pdf_url if user_signed_in?

何らかのルールで特定のアセットを制限することは可能ですか?

4

1 に答える 1

1

制限されたアセットをパブリックフォルダー外のフォルダーに保存して、URLにアクセスするだけではアクセスできないようにしてから、send_fileまたはsend_dataを使用するアクションを作成します。そうすれば、好きなロジックでそれをまとめることができます。

# in controller
def show
  @bill = Bill.find(params[:id])
  if user_signed_in?
    send_file Rails.root.join('bill_pdfs',"#{@bill.id}.pdf")
  else
    redirect_to '/', :error => "Only logged in users may download"
  end
end
于 2012-07-20T20:30:26.413 に答える