Just curious about the best practices for Rails in where I put a custom constraints class that's used as a constraint in config/routes.rb. Seems like Rails.root/lib is where all user classes go. Is that appropriate for this? Should I be creating a directory inside for constraints? 2 empty directories exist there now, assets and tasks. Are there conventions for this?
Where to put constraint classes in Rails project
5.5k Views Asked by at. At
2
There are 2 best solutions below
2
estum
On
This is strange that the guide says nothing about that path, but lib/constraints is even listed in the API (ActionDispatch::Routing::Mapper::Scoping):
You are able to move this logic out into a class if it is too complex for routes. This class must have a
matches?method defined on it which either returns true if the user should be given access to that route, or false if the user should not.class Iphone def self.matches?(request) request.env["HTTP_USER_AGENT"] =~ /iPhone/ end endAn expected place for this code would be lib/constraints.
Related Questions in RUBY-ON-RAILS
- How to display legend box in tooltip text for amCharts 5 in Rails application?
- how to integrate cashfree payment gateway in ruby on rails project
- RSpec Capybara throwing Selenium error when trying to click a button with browser confirm
- rails minitest not picking up fixture properly, instance variable not percolating
- Duplicate GET requests - Rails & Heroku
- How to stub out current_user in JWT model for Rspec?
- NameError in Home#index
- Verifying Google Identity OAuth2 token with Ruby
- Error WebMock::NetConnectNotAllowedError in testing with stub using minitest in rails (using Faraday)
- why is mission_control-jobs erroring with load path error?
- Rescuing validation errors from a polymorphic association
- New error on random number assigned to local variable , Rails
- How to fix error in model with gem lockbox
- Images uploaded via Active Storage not displaying in Active Admin or on certain devices
- controller test_methods generating two errors intermittently
Related Questions in RUBY-ON-RAILS-3
- is there a way to write this clean?
- HTML to pdf conversion using wickedpdf with page count
- Rails rspec feature itegration testing for basic auhentication
- ImageKit works fine on local but doesn't work on heroku why?
- SSL Configuration Issue: Website Redirects Too Many Times and CSRF Token Mismatch
- How to fix permission error while install bundle for rails project on ubuntu?
- Active Admin filters not displaying on screen but present in the html DOM
- Why is the page title not not changing in a turbo-ios app
- Resolving 'net::ERR_BLOCKED_BY_CLIENT' Error After Upgrading Ruby to 3.2.2 and Rails to 7 with jsbundling Gem
- Cant install Mysql2 Gem::Ext::BuildError: ERROR: Failed to build gem native extension
- Filtering Users with Associated Records by Specific Date in Rails
- How to handle the params for accepts_nested_attributes_for for has_many association containing a lot of fields on both associated table
- Issue when Rounding Decimal values
- Map an activerecord array to avoid that two item with the same attribute are in a sequential position
- Devise Registration Ruby on Rails - Migration Error: Duplicate column name
Related Questions in NAMING-CONVENTIONS
- What is the naming convention in Python for asynchronous functions?
- Why do most Azure naming conventions include the resource type in the name?
- useReducer naming conventions
- Python script won't skip past files that match naming convention set in file renaming program
- Issue changing Pylint naming convention in VS Code
- camelCase naming convention not working while returning response
- What does $$[T] mean in method name
- Power Automate, Attempting to add an action that will paste in and rename an export file according to the previous business day in the MM.DD format
- What is the term for a colon before a suite in Python syntax?
- What is the convention for naming C# files that contain extension methods?
- Prisma and Types: Confused about Naming Conventions
- Nested system naming convention in Common Lisp using ASDF?
- How do I reference a lookup table that might not contain the looked up record?
- How distinguish stage of infra vs stage of software in naming convention (IaC)
- How to configure editorconfig file to allow units of measurement after variable names?
Related Questions in RUBY-ON-RAILS-3.2
- Searchkick::InvalidQueryError in rails 3 + Searchkick
- (Ruby on Rails validates_confirmation_of) How to switch error message to the confirmation field?
- Update record in before_destroy and prevent its destruction
- Ruby on Rails: pass query parameters hash with key but nil value
- Access value from multidimensional Hash rails
- Mysql2 error in starting rails server in mac m1
- bundle update --conservative devise does not update only "devise" gem
- minitest/capybara error - NameError: undefined local variable or method 'page'
- Pundit gem error class overriding my custom error class in ruby
- Rails 4 AR .select includes pk field in result even if result is grouped (as opposed to Rails 3.2)
- uninitialize constant user (work with dto)
- Problem deleting server side cookies in Controller
- heroku push of Rails 3.2 app suddenly fails with "Could not detect rake tasks" (no other errors)
- RAILS 3.2.2.1 > rails assets:precompile LoadError: cannot load such file -- net/ssh/config
- Rails find_by new column
Related Questions in CONVENTION-OVER-CONFIGUR
- What are the defaults in Rails for connecting models to partials?
- How to achieve convention-over-configuration for Angular?
- How to define Welcome Page in Java EE without a deployment descriptor
- Do I need to create folder hierarchy for nested module class in Rails
- Using Autofac registering everything that ends with Service
- Is there anyway to eliminate spring-context xml and turn on annotations programatically?
- Package-based controller resolving in Spring MVC
- Configuration by Exception vs Convention over Configuration
- Find class in model with has many relation
- How do I map a model with nested properties to a flat Dto?
- Is there a dynamic module loader for AngularJS that uses convention over configuration?
- Start off with a default "hello world" project in Emacs
- Java Dependency Injection framework with Convention over Configuration feature
- Does coding by convention prevent flexibility?
- What are drawbacks of naming controllers in singular form is Rails?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
lib/would be the appropriate place. If you want to make it cleaner, put it inlib/constraint/authenticated.rband define your constraints like soand in your
routes.rb