Я пытаюсь передать такой объект
<% if( can? :change, comment.karma, comment.user_id)%>
#blah blah blah
<% end %>
и в моих способностях.rb у меня есть следующее:
can :change, Karma do |karma, owner_id|
!karma.changers.map(&:user_id).include? user.id and owner_id != user.id
end
И каждый раз, когда я обновляю страницу, cancan запускает запрос (от ability.rb
), чтобы получить карму, а затем изменяет ее, даже если я уже получил ее (используя опцию :include => { :karma => :changers }
для запроса в контроллере).
Добавлено:
У меня есть предположение, что это происходит, потому что карма хранит ссылку на: включение объектов (не самих объектов), которая фактически нарушается, когда я передаю ее методу. Так что сейчас я думаю о сериализации ..
Есть идеи?