4

Active Admin から CSV ファイルをダウンロードするためのリンクを電子メールで送信する cron タスクに取り組んでいます。リンクは、次の行に沿ったもののように見えます。 www.adminsite.com/admin/records.csv

ユーザーがまだシステムに認証されていない場合 -- アクティブな管理者は、「続行する前にサインインまたはサインアップする必要があります」というページにリダイレクトします。ログイン ページにリダイレクトし、認証が成功したときに CSV ダウンロード リンクをたどる代わりに。

アクティブな管理者の内部を調べてみましたが、まだ把握できていません。何か案は?

ありがとう!

!!! 編集 !!!

私は実際にこの問題を自分で解決することになりました。

私が生成していたリンクは csv 形式にナビゲートしていたので、ナビゲーション形式として :csv オプションをdevise.rb構成ファイルに追加する必要がありました。

config.navigational_formats = ["*/*", :html, :csv]

現在、ログイン ページへのリダイレクトは機能していましたが、ユーザーは /admin/login.csv に移動し、空のページとして返されていました。csv 形式のテンプレートはなかったと思います。

これをroutes.rbファイルに追加して、/admin/login.csv から /admin/login へのリダイレクトを設定する必要がありました。

 devise_for :admin_users, ActiveAdmin::Devise.config do
    match "/admin/login.csv" => redirect("/admin/login")
  end

終わり。

4

1 に答える 1

0

Active Admin は devise を使用してログインを処理します。これがおそらく何も見つからなかった理由です。

ここの指示から:

lib/custom_failure.rb に次のクラスを作成します。

class CustomFailure < Devise::FailureApp
  def redirect_url
    #return super unless [:worker, :employer, :user].include?(scope) #make it specific to a scope
     new_user_session_url(:subdomain => 'secure')
  end

  # You need to override respond to eliminate recall
  def respond
    if http_auth?
      http_auth
    else
      redirect
    end
  end
end

これを config/initializers/devise.rb に追加します:

config.warden do |manager|
  manager.failure_app = CustomFailure
end
于 2013-02-09T22:07:34.717 に答える