
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Add to your project using your Bundler Gemfile:
gem 'seo_meta'
Include in your model by calling the method is_seo_meta
in the class declaration,
for example with Page
:
class Page < ActiveRecord::Base
is_seo_meta
end
Run the generator:
rails generate seo_meta
Migrate the database (unless you want to read 'Migrating existing data' below first):
rake db:migrate
This step is only if you already implemented SEO meta tag fields in your model.
At this point you could add to the migration that is generated in db/migrate/
logic to migrate across your existing data and remove the columns from your model
afterward, for example with Page
:
class CreateSeoMeta < ActiveRecord::Migration[4.2]
def self.up
# ... migration logic from the seo_meta generator ...
# Grab the attributes of the records that currently exist
existing_pages = ::Page.all.map(&:attributes)
# Remove columns
::SeoMeta.attributes.each do |field|
if ::Page.column_names.map(&:to_sym).include?(field)
remove_column ::Page.table_name, field
end
end
# Reset column information because otherwise the old columns will still exist.
::Page.reset_column_information
# Re-attach seo_meta
::Page.module_eval do
is_seo_meta
end
# Migrate data
existing_pages.each do |page|
::Page.find(page['id']).update_attributes({
::SeoMeta.attributes.keys.inject({}) {|attributes, name|
attributes.merge(name => translation[name.to_s])
}
})
end
end
def self.down
# Grab the attributes of the records that currently exist
existing_pages = ::Page.all.map(&:attributes)
# Add columns back to your model
::SeoMeta.attributes.each do |field, field_type|
unless ::Page.column_names.map(&:to_sym).include?(field)
add_column ::Page.table_name, field, field_type
end
end
# Reset column information because otherwise the new columns won't exist yet.
::Page.reset_column_information
# Migrate data
existing_pages.each do |page|
::Page.find(page['id']).update_attributes({
::SeoMeta.attributes.keys.inject({}) {|attributes, name|
attributes.merge(name => translation[name.to_s])
}
})
end
# ... migration logic from the seo_meta generator ...
end
end
Now, run:
rake db:migrate
You can use the included partial if you want a ready made form for the new SEO fields.
Note that the :form
local variable is required and should be a form builder object
from a form_for
block, for example:
<%= form_for @page do |f| -%>
<%= render '/seo_meta/form', :form => f %>
<% end %>
Nope, all done!
FAQs
Unknown package
We found that seo_meta demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.