instance method route

Ruby on Rails 7.1.6

Since v3.0.20

Available in: v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

route(routing_code, namespace: nil)

Make an entry in Rails routing file config/routes.rb

route "root 'welcome#index'"
route "root 'admin#index'", namespace: :admin

Parameters

routing_code req
namespace key = nil
Source
# File railties/lib/rails/generators/actions.rb, line 409
      def route(routing_code, namespace: nil)
        namespace = Array(namespace)
        namespace_pattern = route_namespace_pattern(namespace)
        routing_code = namespace.reverse.reduce(routing_code) do |code, name|
          "namespace :#{name} do\n#{rebase_indentation(code, 2)}end"
        end

        log :route, routing_code

        in_root do
          if namespace_match = match_file("config/routes.rb", namespace_pattern)
            base_indent, *, existing_block_indent = namespace_match.captures.compact.map(&:length)
            existing_line_pattern = /^[ ]{,#{existing_block_indent}}\S.+\n?/
            routing_code = rebase_indentation(routing_code, base_indent + 2).gsub(existing_line_pattern, "")
            namespace_pattern = /#{Regexp.escape namespace_match.to_s}/
          end

          inject_into_file "config/routes.rb", routing_code, after: namespace_pattern, verbose: false, force: false

          if behavior == :revoke && namespace.any? && namespace_match
            empty_block_pattern = /(#{namespace_pattern})((?:\s*end\n){1,#{namespace.size}})/
            gsub_file "config/routes.rb", empty_block_pattern, verbose: false, force: true do |matched|
              beginning, ending = empty_block_pattern.match(matched).captures
              ending.sub!(/\A\s*end\n/, "") while !ending.empty? && beginning.sub!(/^[ ]*namespace .+ do\n\s*\z/, "")
              beginning + ending
            end
          end
        end
      end

Defined in railties/lib/rails/generators/actions.rb line 409 · View on GitHub · Improve this page · Find usages on GitHub

Defined in Rails::Generators::Actions

Type at least 2 characters to search.

↑↓ navigate · open · esc close