問題タブ [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.

0 投票する
0 に答える
197 参照

ruby-on-rails - Rails gem: 本番環境の Cancan が機能しない

私はcancancanを使用しています..開発環境では正常に動作します..しかし、本番環境で取得すると、gemがまったくインストールされていない場合のようにサイトが動作します..承認が処理されません.

何が悪いのかわからない

--------------------アプリケーションコントローラで編集されています

そしてアビリティファイルに

0 投票する
1 に答える
218 参照

ruby-on-rails - RailsアプリをHerokuにデプロイしても動かない

Nitrous.io で Active Admin を使用して Rails アプリを作成しましたが、すべてがその開発環境で動作しています。認証/承認にDevise/CanCanCanを使用しています

Heroku にプッシュして Active Admin にアクセスしようとすると、次のエラーが表示されます。

私のユーザーモデルは次のようになります:

アビリティ.rb

私は何を間違っていますか?

herokuサーバーを何度も再起動しようとしました。

助けてくれてありがとう。

乾杯!

0 投票する
1 に答える
213 参照

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) が失敗する理由を調べるにはどうすればよいですか?

課題としても掲載

0 投票する
1 に答える
953 参照

ruby-on-rails - CanCan を使用したさまざまなリダイレクト

認証に CanCan を使用して SaaS アプリを実行しています (実際には、より保守されている CanCanCan gem)。さまざまな「タイプ」のアクセス許可を区別できるようにしたいと考えています。

たとえば、平均的なユーザーが にアクセスする/adminpanelと、 へのリダイレクト/とエラー フラッシュが発生するはずです。しかし、平均的なユーザーが にアクセスする場合は/paid_feature、 にリダイレクトしたいと考えてい/payments/paid_feature/newます。それは私に困難を引き起こしている2番目のものです。

明らかに、すべてのユーザーが にアクセスできるように CanCan に指示paid_featureability.rb、payed_feature コントローラーでユーザーが支払った (必要に応じてリダイレクトする) ことを確認できます。しかし、それは汚れているようです。承認の質問なので、私のability.rb. どうすればそれができるか知っている人はいますか?

0 投票する
2 に答える
1965 参照

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_resourceprotected 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 メーリング リストに投稿しましたが、回答がありませんでした。どんな助けでも大歓迎です。

0 投票する
1 に答える
268 参照

ruby-on-rails - Rails - ActionController::RoutingError ([GET] "/generic.png" に一致するルートはありません):

最近、gemfile を更新したところ、サーバーが開発環境で次のログを記録していることに気付きました - ActionController::RoutingError (No route matches [GET] "/generic.png")

本番環境(Heroku)で-次のようになります-

他の誰かがこれに遭遇しましたか?アプリを壊すわけではありませんが、私には謎です。

私はdeviseとcancancanを使用しています。コードで検索を実行しましたが、generic.png が表示されている唯一の場所はログにあり、gem のどこかに埋もれていると思います。

0 投票する
1 に答える
308 参照

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に関連している可能性がありますが、機能させることはできません。

0 投票する
2 に答える
190 参照

ruby-on-rails-4 - 特定のロールを持つユーザーのみに特定のスコープを制限するにはどうすればよいですか?

だから私はPostモデルを持っています。Mypostsは公開または非公開のいずれかです。私はRolify、CanCanCan、およびDeviseを使用しています。

私が望んでいるのは、ユーザーがすべての投稿のアクション:adminを表示できるようにすることですが、私またはユーザー (つまり、ログインしていない) は投稿のみを表示できるようにする必要があります。Post#Show:memberguestPost.published

ability.rbはこのように見えます:

と の両方:memberでこれを試してみGuestましたが、ページで無限のリダイレクトループが発生しましたPost#Index-これは私のroot_pathです:

WherePost.publishedは、 を持つすべての投稿の配列を返しますpublication_status = "published"

これは、私が自分で宣言した方法ですPost.rb:

どうすればこれを達成できますか?

0 投票する
3 に答える
143 参照

ruby-on-rails - && を使用した if ステートメントを正しく機能させるにはどうすればよいですか?

私はこれを私の見解で持っています:

これにより、次のエラーが返されます。

私もこれを試しました:

上記のエラーは発生しませんが、まったく機能しません...つまり、 そのブロックnon-signed-in-user内のコンテンツにアクセスできます。if

0 投票する
1 に答える
594 参照

ruby-on-rails - Cancan と :create の has_many 関係の使用

本には多くの章があります。ユーザー has_many 本。

私は devise と cancancan を使用しています。ユーザーが所有する任意の本の章を作成できるようにしたいと考えています。私の問題は、Ability.rb に存在するまで章が本に属さないことです -

は問題ありませんが、これを :create で使用すると nil メソッドがスローされます。これは、オブジェクトが作成されるまでプロパティがないためです。コントローラーの作成アクションにチェックを入れることに頼りました-

...それでいいのですが、もっと良い方法があるはずですよね?