答えて
コントローラに編集アクションにのみ適用されるbefore_filter
を作成できます。それは状態をチェックし、それが実行できるようにするか、メソッドの戻りに応じてredirect_to
にすることができます。
アプリケーションのコントローラでは、このような何か:
def some_method
if foo.bar == true
redirect_to foos_path
end
end
次に質問
before_filter :some_method, :only => :edit
のあなたのコントローラの初めにuは(active_adminビューの)「編集」リンクを非表示にする場合オブジェクトが特定の値を保持している場合は、メソッドのデフォルトビューをオーバーライドして、リンクが表示される前に条件を追加できます。あなたはindexアクションで(リンクビューと一緒に削除)デフォルトで表示される編集リンクを隠して話をしている場合は、次のよう
、あなたは、インデックスのビューをカスタマイズすることができますので、
ActiveAdmin.register Model do
index do
column :actions do |object|
raw(%(#{link_to "View", [:admin, object]}
#{link_to "Delete", [:admin, object], method: :delete}
#{(link_to"Edit", [:edit, :admin, object]) if object.status? }))
end
end
end
列の内容はcolumn
ブロックによって返される内容のみになります。3つ(または2つ)のリンクをすべて一度に文字列として返す必要があります。ここではraw
が使用され、実際のリンクが表示され、リンクのhtmlは表示されません。
あなたの答えをありがとう!削除のプロンプトを追加することができれば素晴らしいことでしょう。 –
私はついにそれをしました。私は2つのものが必要でした:
リダイレクト直接アクセスして編集ページにボタンを隠すとき。私はこのようにそれを行うのボタンを非表示にするには
before_filter :some_method, :only => [:edit, :update]
def some_method
redirect_to action: :show if status == something
end
:
ActiveAdmin.register Model do
config.clear_action_items!
action_item :only => [:show] , :if => proc { instance.status == something } do
link_to 'Edit', edit_model_path(instance)
end
end
'instance'は' model'(snake_caseのモデル名)でなければなりません。 – ypresto
これを達成することができ、ユーザは、私はbefore_filterを使用して編集ページに直接アクセスしようとすると
をリダイレクトするには以下を使用してください:
defaults: true
を使用すると、 tomアクションをアクティブな管理者のデフォルトアクションに変更します。
- 1. Reduxの:クロス減速状態に応じてアクションをディスパッチ
- 2. MenuStripのメニュー項目状態の設定
- 3. 不変の状態項目の編集
- 4. フォルダーの状態に応じたフォルダーの監視とイベントトリガー
- 5. チェックボックスの状態に応じた同位体フィルター
- 6. jCarousel Liteの最初の項目にアクティブ状態を追加
- 7. 個々の状態項目に対する反復還元プロパティー
- 8. 項目数に応じたリストのカスタム文字列表現(Python)
- 9. 別の状態からのデータに依存するアクション
- 10. アンドロイド:onCreateOptionsMenu()項目のアクション
- 11. CSSの問題 - ナビゲーション項目のアクティブ状態
- 12. ListView項目と状態セレクタのバックグラウンドdrawableの奇妙な動作
- 13. データベース設計:単一項目の複数の状態
- 14. 還元状態でのクリア状態アクションのディスパッチ
- 15. 親状態の変更時に子作業項目の状態が自動的に変更できるか
- 16. jqueryを使用してリスト項目のアクティブ状態または選択状態を変更します
- 17. activeadmin override indexアクション
- 18. アクティブな状態のリスト項目アンカーをホバリングする
- 19. 還元状態ツリーの項目が重複しています
- 20. ナイトメアの状態に応じて何かするには?
- 21. データを取得した後の処理状態 - 反応
- 22. Redux状態:アクションまたはセレクタ?
- 23. 見た目の競争状態ローディングコンテンツ
- 24. jquery div要素の状態に応じてリストをソート
- 25. どの状態に応じて表示が異なる
- 26. データセット内の行項目の値に応じてラジオボタンをチェック
- 27. 配列内の項目の量に応じてPHPループ
- 28. フィールドの状態に応じた最終的なdatatableの行の書式設定
- 29. 反応状態を別の状態に追加する
- 30. 2番目のUIWindowを閉じた後にステータスバーの状態を復元する
これは1つのステップですが、編集するリンクも非表示にしたい(例の場合)。 –
私はショーを編集するように変更しました。基本的には、条件が期待通りに満たされない限り、何かが編集パスに当たったときにリダイレクトされます。私はこれがあなたが探しているものだと思います。そうでない場合は、もっと詳しくお答えください。 – jameswilliamiii