2013-04-04 4 views
1

У меня есть 2 сценария, но оба решения имеют одинаковый результат. Оба сценария включают попытку обновления записей через Rails_admin с обеих моделей, имеющих ассоциацию «принадлежность к пользователю».Невозможно обновить пользователя в Rails_Admin для модели и с именем owner_to: user

Сценарий 1: Мне нужно обновить видеозапись, принадлежащую пользователю. Если я попытаюсь изменить пользователя, которому назначено это видео, user_id всегда будет изменяться на user_id администратора, входящего в Rails_Admin. User_id изменится на текущий зарегистрированный Admin независимо от поля, которое я пытаюсь отредактировать.

Сценарий 2. Мне необходимо обновить сумму кредита в записи профиля, принадлежащей пользователю. Еще раз, независимо от того, какое поле я меняю, даже если пользователь не отображается, user_id изменяется на текущий вход пользователя user_id.

Предложения?

ответ

0

Похоже, что у вас есть проблема с конфигурацией вашего канкана.

проверка строки:

может: управлять, видео, пользователь: пользователь

В этом случае RailsAdmin перекроет любое значение для user_id в current_user.

+0

Вот что у меня есть, мне не нужны эти? 'если пользователь может [: crud], Video, user_id: user.id , если user.has_role? : admin может: управлять,: все end end' Это единственные предметы, связанные с видео. – tohare

0

У меня была такая же проблема, и я решил ее, изменив свои способности, чтобы избежать совпадений с возможностями. Это означает, что если пользователь является администратором, то у него не будет возможностей, установленных для других пользователей.

Пример перекрытия, который вызывал ошибку для меня:

user ||= User.new # guest user (not logged in) 

can :manage, Video, user: user 
if user.admin? 
    can :manage, Video 
end 

Это должно быть изменено на:

user ||= User.new # guest user (not logged in) 

if user.admin? 
    can :manage, Video 
else 
    can [:crud], Video, :user_id => user.id 
end 

 Смежные вопросы

  • Нет связанных вопросов^_^