問題タブ [cancancan]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails gem: 本番環境の Cancan が機能しない
私はcancancanを使用しています..開発環境では正常に動作します..しかし、本番環境で取得すると、gemがまったくインストールされていない場合のようにサイトが動作します..承認が処理されません.
何が悪いのかわからない
--------------------アプリケーションコントローラで編集されています
そしてアビリティファイルに
ruby-on-rails - RailsアプリをHerokuにデプロイしても動かない
Nitrous.io で Active Admin を使用して Rails アプリを作成しましたが、すべてがその開発環境で動作しています。認証/承認にDevise/CanCanCanを使用しています
Heroku にプッシュして Active Admin にアクセスしようとすると、次のエラーが表示されます。
私のユーザーモデルは次のようになります:
アビリティ.rb
私は何を間違っていますか?
herokuサーバーを何度も再起動しようとしました。
助けてくれてありがとう。
乾杯!
ruby-on-rails - アクセスが拒否された条件の Rails CanCan ハッシュ
次のようなアビリティの設定で問題が発生しています。
問題は
それでも false を返します
期待どおり、そのユーザーのプロジェクトだけを返します。
ruby 1.9.3-p547を使用して、レール3.2.19でcancan 1.6.10とcancancan 1.9.2を試しました
これは cancancan または私のコードのバグですか? capability.can?(:read, my_project) が失敗する理由を調べるにはどうすればよいですか?
ruby-on-rails - CanCan を使用したさまざまなリダイレクト
認証に CanCan を使用して SaaS アプリを実行しています (実際には、より保守されている CanCanCan gem)。さまざまな「タイプ」のアクセス許可を区別できるようにしたいと考えています。
たとえば、平均的なユーザーが にアクセスする/adminpanel
と、 へのリダイレクト/
とエラー フラッシュが発生するはずです。しかし、平均的なユーザーが にアクセスする場合は/paid_feature
、 にリダイレクトしたいと考えてい/payments/paid_feature/new
ます。それは私に困難を引き起こしている2番目のものです。
明らかに、すべてのユーザーが にアクセスできるように CanCan に指示paid_feature
しability.rb
、payed_feature コントローラーでユーザーが支払った (必要に応じてリダイレクトする) ことを確認できます。しかし、それは汚れているようです。承認の質問なので、私のability.rb
. どうすればそれができるか知っている人はいますか?
ruby-on-rails - ActiveAdmin + CanCanCan エラー: 保護されたメソッド `authorize!' 求められた
ActiveAdmin を CanCanCan と連携させるのに問題があります。Rails 4 アプリで CanCanCan バージョン 1.9.2 と ActiveAdmin バージョン 1.0.0.pre を使用しています。アビリティ クラスをセットアップし、ApplicationController にload_and_authorize_resource
とを追加してアプリの残りの部分で承認チェックを有効check_authorization
にすると、エラーが発生します。
protected method 'authorize!' called for #<Activeadmin::<SomeControler>> (NoMethodError)
いくつか検索した後、私が抱えている問題とまったく同じように見えるこのGitHubの問題に遭遇しました。ただし、解決策はまったく機能しません。config/initializers/active_admin.rb には、特に次のようなもの
があります。 ActiveAdmin コントローラーに
...
config.authorization_adapter = ActiveAdmin::CanCanAdapter
...
参照がないことも確認しましたが、統合テストから ActiveAdmin リソースにアクセスしようとするとエラーが発生します。controller.authorize_resource
protected method authorize! ...
試行錯誤と検索を重ねた結果load_and_authorize_resource
、ApplicationController からの呼び出しは推奨されないことがわかりました。また、上記のように ActiveAdmin の authorization_adapter を CanCanAdapter に設定すると、ActiveAdmin で CanCanCan の承認チェックが自動的に有効になるはずcheck_authorization
ですが、リソースが毎回承認されていないために失敗することがわかりました。 ApplicationController から削除されたときの ActiveAdmin コントローラーload_and_authorize_resource
。
では、ActiveAdmin コントローラに対して CanCanCan の認証チェックを有効にする正しい方法は何ですか? 管理者以外のユーザーが ActiveAdmin リソースにアクセスできないようにするには、CanCanCan と ActiveAdmin をどのように統合すればよいですか?
この質問も ActiveAdmin メーリング リストに投稿しましたが、回答がありませんでした。どんな助けでも大歓迎です。
ruby-on-rails - Rails - ActionController::RoutingError ([GET] "/generic.png" に一致するルートはありません):
最近、gemfile を更新したところ、サーバーが開発環境で次のログを記録していることに気付きました - ActionController::RoutingError (No route matches [GET] "/generic.png")
本番環境(Heroku)で-次のようになります-
他の誰かがこれに遭遇しましたか?アプリを壊すわけではありませんが、私には謎です。
私はdeviseとcancancanを使用しています。コードで検索を実行しましたが、generic.png が表示されている唯一の場所はログにあり、gem のどこかに埋もれていると思います。
ruby-on-rails - 両方の缶で列挙型で CanCan を使用する場合の問題? およびaccessible_by()
CanCan を使用して、サイトのコメントの表示を制限しようとしています。私のコメントモデルでは、列挙型が定義されています:
これが私の現在のability.rbファイルの抜粋です:
最初は次のものを使用していました:
しかし、これはレコードを取得するときに機能しますが:
次のようなオブジェクトに対してアクセス許可をチェックする場合は機能しません。
@a_comment.access_right == "全員" (2 ではない)
オンラインで調べたところ、CanCanCommunity issue 102が見つかりました。次のように「everyone」を直接使用するため、提案されたソリューションは私にとってはうまくいきませんでした。
間違った結果になります。レコードをフェッチするときの背後にある SQL クエリは次のようになります。
この場合、「everyone」は整数 (0) にキャストされているようです。
その後、シンボル (:everyone) のおかげで、現在のアビリティ ファイルである回避策を見つけました。しかし、缶を使用すると、物事はもう機能しませんか?:read, @a_comment (accessible_by を使用すると、SQL は正しくなります)
この問題を修正する方法を知っている人はいますか?
レコードのフェッチ中と缶の両方で検証できる列挙型に基づいて能力を定義する方法は?
ありがとうございました!
編集: このCanCanCommunity issue 65に関連している可能性がありますが、機能させることはできません。
ruby-on-rails-4 - 特定のロールを持つユーザーのみに特定のスコープを制限するにはどうすればよいですか?
だから私はPost
モデルを持っています。Myposts
は公開または非公開のいずれかです。私はRolify、CanCanCan、およびDeviseを使用しています。
私が望んでいるのは、ユーザーがすべての投稿のアクション:admin
を表示できるようにすることですが、私またはユーザー (つまり、ログインしていない) は投稿のみを表示できるようにする必要があります。Post#Show
:member
guest
Post.published
私ability.rb
はこのように見えます:
と の両方:member
でこれを試してみGuest
ましたが、ページで無限のリダイレクトループが発生しましたPost#Index
-これは私のroot_path
です:
WherePost.published
は、 を持つすべての投稿の配列を返しますpublication_status = "published"
。
これは、私が自分で宣言した方法ですPost.rb
:
どうすればこれを達成できますか?
ruby-on-rails - && を使用した if ステートメントを正しく機能させるにはどうすればよいですか?
私はこれを私の見解で持っています:
これにより、次のエラーが返されます。
私もこれを試しました:
上記のエラーは発生しませんが、まったく機能しません...つまり、 そのブロックnon-signed-in-user
内のコンテンツにアクセスできます。if