Я не уверен, что это возможно, но с учетом того, как вы можете внедрить метод в модули, есть ли способ вставить «act_as_readable: on =>: update_at» в PublicActivity :: Activity?с использованием gem непрочитанных с public_activity
Проблема заключается в следующем: я хочу, чтобы непрочитанные также отслеживали новые действия, которые пользователь еще не видел, поэтому я впервые попробовал это таким образом.
class Activity < PublicActivity::Activity
acts_as_readable :on => :updated_at
end
class User < ActiveRecord::Base
acts_as_reader
end
Однако я заметил, в записи (таблица read_marks DB), когда я
Activity.mark_as_read! :all, :for => current_user
что ключ readable_type установлен в 'PublicActivity :: деятельности' вместо 'активность'
Это связано с тем, что Непрочитанный драгоценный камень использует
user.read_marks.build(:readable_id => obj.id, :readable_type => self.base_class.name)
что base_class дает класс закрытым est в ActiveRecord :: Base Какой был бы лучший вариант?
1) вводят как-то 'acts_as_readable: на =>: updated_at' непосредственно в PublicActivity :: Деятельность
2) вилки PublicActivity и проверьте, установлен ли непрочитанная драгоценный камень, если так добавить строку «acts_as ... '
3) вилка Непрочитанный камень и ... не уверен, что я буду делать здесь, первая уродливая вещь, которая приходит на ум, будет проверять, начинается ли класс с PublicActivity!
И только определить вопрос: Так как (таблица read_marks DB) Пластинка в читаемый тип PublicActivity :: Деятельность и не активность, мой
Activity.unread_by(current_user).count
никогда не возвращает правильное количество. Использование
PublicActivity::Activity.unread...
потерпит неудачу с 'acts_as_readable: на =>: updated_at' в активность и не PublicActivity :: деятельности.
UPDATE
Я попытался «обезьяньим пластырь» в Public_Activity плагин, но теперь я еще больше запутались, почему это не удается, он должен быть чем-то тупое, что я делаю. Я добавил следующий файл. Однако readable_type еще PublicActivity :: активность и мой счетчик остается неизменным после того, как я
PublicActivity::Activity.mark_as_read! :all, :for => current_user
# config/initializers/activity_unread.rb
PublicActivity::Activity.module_eval do
acts_as_readable :on => :updated_at
end
UPDATE
AH! Это поле readable_type имело ограничение только 20, которое усекало мое имя класса. Теперь он работает после того, как я увеличил размер.
описание public_activity говорит поместите это в файл и ссылаться на него через Rails initializer.WHich файл вы должны поместить PublicActivity :: Activity.template = YAML.load_file ("# {} RAILS_ROOT /config/pba.yml") ? Я попытался сделать это в application.rb, environment.rb .. все перестановки .. Я только получаю Шаблон не определен! Пожалуйста, помогите мне! благодаря! – gkolan
Как вы исправили поле readable_type, имеющее ограничение только 20? То есть, как вы увеличили его размер? –
http://stackoverflow.com/questions/15194261/how-can-i-increase-a-field-in-a-rails-gem/15194299#15194299 получил это –