0
У меня есть организация, которая has_many Принадлежность И миссия, которая HAS_ONE Организацияif_attribute синтаксис проблема на declarative_authorization
Так что я могу это сделать:
m = Mission.first
m.organization.affiliations
Пользователь также has_many принадлежности, так что я могу сделать:
u = User.first
u.affiliations
В declarative_authorization Я хочу, чтобы пользователь мог управлять миссией, если он связан с организацией промаха ион.
Я пытаюсь это:
has_permission_on :missions, :to => [:manage] do
if_attribute [:affiliations, {:mission => :organization} ] => intersects_with {
user.affiliations.type_admin
}
end
Но я получаю ошибку:
[:affiliations, {:mission=>:organization}] is not a symbol
Что случилось с синтаксисом?
Маршрутизатор DSL составлен, но он не дал мне разрешение на управление миссии. В окне сервера я увидел, что миссия и организация были ноль: Разрешение отказано: новое не разрешено для # <Идентификатор пользователя: 2, имя: «Miguel», фамилия: «Alho», электронная почта: «blah @ blah .com ", день рождения:" 2010-07-05 20:24:00 ", crypted_password:" ... ", password_salt:" ... ", persistence_token:" ... ", perishable_token:" ... " , created_at: "2010-03-05 20:25:34", updated_at: "2010-03-30 15:45:36"> on # <Миссия id: nil, user_id: nil, organization_id: nil, name: nil , цели: nil, created_at: nil, updated_at: nil>. –
Если я заставляю пропустить заклинание на организацию, я получаю ожидаемую ошибку и вижу, что присутствуют объекты миссии и организации ... Ошибка при вызове организации_ на # <Идентификатор миссии: 1, user_id: 1, organization_id: 1, name : «Имя миссии», (...) для проверки атрибута: неопределенный метод 'organization_ 'для # <Миссия: 0x1031329b0> –
Я получаю это ... это новая миссия, поэтому к ней не привязан организатор. Это будет только когда миссия будет спасена. Но это не объясняет, почему по ошибке Missin и организация существует ... –