Sha256: 2511c81af67a77a0186d6707017faeb01046325a212927708f43dff3e01d5298
Contents?: true
Size: 938 Bytes
Versions: 1
Compression:
Stored size: 938 Bytes
Contents
class <%= migration_class_name %> < ActiveRecord::Migration def up execute <<-EOS -- feel free to customize this function if you want to join to columns from another table, for example CREATE OR REPLACE FUNCTION <%=trigger_sp_name %>() RETURNS trigger AS $$ begin new.<%=column_name %> := <% sep='';columns.each do |column| -%> <%=sep%>setweight(to_tsvector('<%=search_config_name %>', coalesce(new.<%=column %>,'')), 'A') <%sep='|| ' -%> <% end -%>; return new; end $$ LANGUAGE plpgsql; EOS execute <<-EOS DROP TRIGGER IF EXISTS <%=trigger_name %> ON <%=table_name %>; CREATE TRIGGER <%=trigger_name %> BEFORE INSERT OR UPDATE ON <%=table_name %> FOR EACH ROW EXECUTE PROCEDURE <%=trigger_sp_name %>(); EOS end def down execute "DROP TRIGGER <%=trigger_name %>" execute "DROP FUNCTION <%=trigger_sp_name %>" end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
search_steroids-0.0.1 | lib/generators/enable_tsearch/templates/add_trigger_migration.rb |