-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #233 from TreinaDev/feat/adiciona-friendly-id
Feat/adiciona friendly id
- Loading branch information
Showing
36 changed files
with
212 additions
and
68 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
# FriendlyId Global Configuration | ||
# | ||
# Use this to set up shared configuration options for your entire application. | ||
# Any of the configuration options shown here can also be applied to single | ||
# models by passing arguments to the `friendly_id` class method or defining | ||
# methods in your model. | ||
# | ||
# To learn more, check out the guide: | ||
# | ||
# http://norman.github.io/friendly_id/file.Guide.html | ||
|
||
FriendlyId.defaults do |config| | ||
# ## Reserved Words | ||
# | ||
# Some words could conflict with Rails's routes when used as slugs, or are | ||
# undesirable to allow as slugs. Edit this list as needed for your app. | ||
config.use :reserved | ||
|
||
config.reserved_words = %w[new edit index session login logout users admin | ||
stylesheets assets javascripts images] | ||
|
||
# This adds an option to treat reserved words as conflicts rather than exceptions. | ||
# When there is no good candidate, a UUID will be appended, matching the existing | ||
# conflict behavior. | ||
|
||
# config.treat_reserved_as_conflict = true | ||
|
||
# ## Friendly Finders | ||
# | ||
# Uncomment this to use friendly finders in all models. By default, if | ||
# you wish to find a record by its friendly id, you must do: | ||
# | ||
# MyModel.friendly.find('foo') | ||
# | ||
# If you uncomment this, you can do: | ||
# | ||
# MyModel.find('foo') | ||
# | ||
# This is significantly more convenient but may not be appropriate for | ||
# all applications, so you must explicitly opt-in to this behavior. You can | ||
# always also configure it on a per-model basis if you prefer. | ||
# | ||
# Something else to consider is that using the :finders addon boosts | ||
# performance because it will avoid Rails-internal code that makes runtime | ||
# calls to `Module.extend`. | ||
# | ||
# config.use :finders | ||
# | ||
# ## Slugs | ||
# | ||
# Most applications will use the :slugged module everywhere. If you wish | ||
# to do so, uncomment the following line. | ||
# | ||
# config.use :slugged | ||
# | ||
# By default, FriendlyId's :slugged addon expects the slug column to be named | ||
# 'slug', but you can change it if you wish. | ||
# | ||
# config.slug_column = 'slug' | ||
# | ||
# By default, slug has no size limit, but you can change it if you wish. | ||
# | ||
# config.slug_limit = 255 | ||
# | ||
# When FriendlyId can not generate a unique ID from your base method, it appends | ||
# a UUID, separated by a single dash. You can configure the character used as the | ||
# separator. If you're upgrading from FriendlyId 4, you may wish to replace this | ||
# with two dashes. | ||
# | ||
# config.sequence_separator = '-' | ||
# | ||
# Note that you must use the :slugged addon **prior** to the line which | ||
# configures the sequence separator, or else FriendlyId will raise an undefined | ||
# method error. | ||
# | ||
# ## Tips and Tricks | ||
# | ||
# ### Controlling when slugs are generated | ||
# | ||
# As of FriendlyId 5.0, new slugs are generated only when the slug field is | ||
# nil, but if you're using a column as your base method can change this | ||
# behavior by overriding the `should_generate_new_friendly_id?` method that | ||
# FriendlyId adds to your model. The change below makes FriendlyId 5.0 behave | ||
# more like 4.0. | ||
# Note: Use(include) Slugged module in the config if using the anonymous module. | ||
# If you have `friendly_id :name, use: slugged` in the model, Slugged module | ||
# is included after the anonymous module defined in the initializer, so it | ||
# overrides the `should_generate_new_friendly_id?` method from the anonymous module. | ||
# | ||
# config.use :slugged | ||
# config.use Module.new { | ||
# def should_generate_new_friendly_id? | ||
# slug.blank? || <your_column_name_here>_changed? | ||
# end | ||
# } | ||
# | ||
# FriendlyId uses Rails's `parameterize` method to generate slugs, but for | ||
# languages that don't use the Roman alphabet, that's not usually sufficient. | ||
# Here we use the Babosa library to transliterate Russian Cyrillic slugs to | ||
# ASCII. If you use this, don't forget to add "babosa" to your Gemfile. | ||
# | ||
# config.use Module.new { | ||
# def normalize_friendly_id(text) | ||
# text.to_slug.normalize! :transliterations => [:russian, :latin] | ||
# end | ||
# } | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
class AddSlugToProfiles < ActiveRecord::Migration[7.1] | ||
def change | ||
add_column :profiles, :slug, :string | ||
add_index :profiles, :slug, unique: true | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIGRATION_CLASS = | ||
if ActiveRecord::VERSION::MAJOR >= 5 | ||
ActiveRecord::Migration["#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}"] | ||
else | ||
ActiveRecord::Migration | ||
end | ||
|
||
class CreateFriendlyIdSlugs < MIGRATION_CLASS | ||
def change | ||
create_table :friendly_id_slugs do |t| | ||
t.string :slug, null: false | ||
t.integer :sluggable_id, null: false | ||
t.string :sluggable_type, limit: 50 | ||
t.string :scope | ||
t.datetime :created_at | ||
end | ||
add_index :friendly_id_slugs, [:sluggable_type, :sluggable_id] | ||
add_index :friendly_id_slugs, [:slug, :sluggable_type], length: {slug: 140, sluggable_type: 50} | ||
add_index :friendly_id_slugs, [:slug, :sluggable_type, :scope], length: {slug: 70, sluggable_type: 50, scope: 70}, unique: true | ||
end | ||
end |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.