Şunlar arasında çoktan çoğa ilişkim var: Bir kullanıcı has_many kuruluşları, bağlı kuruluşlar ve tersi.if_attribute bildirim amaçlı yetkilendirme
Deklarasyon kuruluşlarını kullanıyorum ve yalnızca bir kullanıcının bağlı olduğu bir kuruluşa ve bağlı kuruluşun affiliationtype özniteliğinin belirli bir değere sahip olduğunu düzenlemesini istiyorum.
Yani bağlantıları 3 sütun, user_id, organization_id vardır ve affiliationtype_id
Yapabileceğim: eğer
has_permission_on [:organizations], :to => :edit do
if_attribute (...)
end
if_attribute görmelisiniz O:
o = Organization.find(:first)
o.affiliatons[0].user and get the user
şimdi bunu yapmak isteyen geçerli kullanıcı organization.affiliation [?]. kullanıcı ve eğer organization.affiliation [?]. affiliationtype_id = "3"
Umarım bu sözdizimi meselesidir ... Bu işe gerçekten ihtiyacım var.
Ben kullanıcıyı bulup maçı doğrulayabilir. Ancak, kullanıcıyı bulmalı ve bağlı kuruluşun belirli bir kimliğe sahip olup olmadığına bakmalıyım. Kullanabiliyorum user_id, ama o user_id'in affiliationtype için nasıl görüyorum? Anlamadım ... –
Düzenlememe bak, bence bu yardımcı olabilir. Organization.affiliations ve user.affiliations.with_type_3 (named_scope suggestion) ile kesişen yalnızca bir veya sıfır bağlantı nesnesi var. v.affiliations.type_admin ama if_attribute: üyelikler => intersects_with { user.affiliations.type_admin } Hiç – nanda
neredeyse ... bu bana kullanıcı için sadece bir değer veren konsolda çalışır doğrulanır –