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
- Revealing module pattern instantiation and naming convention
- REST convention for parent insert and parent + joinId insert using same endpoint
- updateObject or changeObject, removeObject or deleteObject?
- Why do c++ libraries often define their own primitive types?
- What is a 'thunk'? (in the context of re-entrant sort functions, eg: qsort_r)
- Maven GroupID and ArtifactID for J2EE Utility Project
- Django package naming issues
- Error: Not found: Value S (Scala)
- Swift naming conventions for ivars (properties)
- Django database table naming convention
- The differences between BEM and SUIT CSS naming conventions
- Class with long name
- Class/instance attribute naming convention in python
- Same class name and assembly name in .net
- While forming a REST URL for our application, how should we differentiate two services related to the same object?
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 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