質問

ようにしている定義named_scopeのためのモデルのレールに願います。

現在でもしっかり入れていくことによる書き初期化子ActiveRecord::ベースを通常通りの方法ではあります。もちろん、これには、実際でクエチェーンはおそらく、少なくともレール-ey多種多様なレストランがたくさんの作成"にチェックを入れます。

しかし、うまくいきませんで出場してみを使用しhas_many,named_scope。ActiveRecordます。

がわかっnamed_scopeが正しくないっていただく一助にnamed_scope定義されています。また、つもりはありませんRubyのACLの宝石です。

にinitializers/:

class ActiveRecord::Base

  has_many(:permissions)
  named_scope(:acl_check, lambda do |user_id, method|
        {
            :include => :permission,
            :conditions => [
                ["permissions.user_id=?", user_id],
                ["permissions.method=?", method],
                ["permissions.classname=?", self.class.name]
            ]
        }
  end)

    # Conducts a permission check for the current instance.
    def check_acl?(user_id, method)

        # Perform the permission check by User.
        permission_check = Permission.find_by_user_id_and_instance_id_and_classname_and_method(user_id, self.id, self.class.name, method)
        if(permission_check)
            # If the row exists, we generate a hit.
            return(true)
        end

        # Perform the permission check by Role.

        # Otherwise, the permissions check was a miss.
        return(false)

    end

end
役に立ちましたか?

解決

has_many が動作しないのではないのではなクラスの本体と外部キーのクラスで評価したのを受け継ぎます。(例:ブログのモデルid=42でも多くのコメントをモデルに格納されblog_id=42のキーが必要なのはそれを動作させるために、クラス名)

の範囲にするべきであれば正しい。

継承されたメソッドはます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top