う定義named_scopesその他のActiveRecordの関係はすべてのモデル
-
20-08-2019 - |
質問
ようにしている定義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のキーが必要なのはそれを動作させるために、クラス名)
の範囲にするべきであれば正しい。
継承されたメソッドはます。
所属していません StackOverflow