Drop the talks column from the TalkPreference model

This commit is contained in:
Petko Bordjukov 2016-10-05 14:55:34 +03:00
parent 05240dfed4
commit c3ba666730
2 changed files with 30 additions and 2 deletions

View File

@ -3,8 +3,6 @@ class TalkPreference < ActiveRecord::Base
self.primary_key = :unique_id self.primary_key = :unique_id
serialize :talks, Array
before_create :assign_new_unique_id before_create :assign_new_unique_id
def include?(id) def include?(id)
@ -20,6 +18,10 @@ class TalkPreference < ActiveRecord::Base
where created_at: timespan where created_at: timespan
end end
def talks
selected_talks.pluck :talk_id
end
private private
def assign_new_unique_id def assign_new_unique_id

View File

@ -0,0 +1,26 @@
class TalkPreference < ActiveRecord::Base
self.primary_key = :unique_id
has_many :selected_talks
serialize :talks, Array
end
class SelectedTalk < ApplicationRecord
belongs_to :talk_preference
end
class RemoveTalksFromTalkPreferences < ActiveRecord::Migration[5.0]
def up
remove_column :talk_preferences, :talks, :text
end
def down
add_column :talk_preferences, :talks, :text
talk_preferences = TalkPreference.all
talk_preferences.each do |preference|
preference.talks = preference.selected_talks.pluck(:talk_id)
preference.save!
end
end
end