0

Basically, I have 2 route paths that I would like to hide or change the Path and Controller#Action listings.

Here is a screen shot of the two I'm talking about:

enter image description here

I don't want the following to show as is at all on that error page:

/createcsblog1234 & compscis#new
/createpblog1234 & personalbs#new

I tried changing them from get to post, but it still shows them in the error page as is.

I've checkout some of the answers from other questions and couldn't find anything I was looking for. I was thinking of creating an all-purpose '404' page in case a user enters the wrong url so that I can bypass this error page completely, but I don't know how to that either.

EDIT: Pasting all of config/environments/production.rb file:

Rails.application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # Code is not reloaded between requests.
  config.cache_classes = true

  # Eager load code on boot. This eager loads most of Rails and
  # your application in memory, allowing both threaded web servers
  # and those relying on copy on write to perform better.
  # Rake tasks automatically ignore this option for performance.
  config.eager_load = true

  # Full error reports are disabled and caching is turned on.
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true

  # Enable Rack::Cache to put a simple HTTP cache in front of your application
  # Add `rack-cache` to your Gemfile before enabling this.
  # For large-scale production use, consider using a caching reverse proxy like
  # NGINX, varnish or squid.
  # config.action_dispatch.rack_cache = true

  # Disable serving static files from the `/public` folder by default since
  # Apache or NGINX already handles this.
  config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?

  # Compress JavaScripts and CSS.
  config.assets.js_compressor = :uglifier
  # config.assets.css_compressor = :sass

  # Do not fallback to assets pipeline if a precompiled asset is missed.
  config.assets.compile = false

  # Asset digests allow you to set far-future HTTP expiration dates on all assets,
  # yet still be able to expire them through the digest params.
  config.assets.digest = true

  # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb

  # Specifies the header that your server uses for sending files.
  # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX

  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
  # config.force_ssl = true

  # Use the lowest log level to ensure availability of diagnostic information
  # when problems arise.
  config.log_level = :debug

  # Prepend all log lines with the following tags.
  # config.log_tags = [ :subdomain, :uuid ]

  # Use a different logger for distributed setups.
  # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)

  # Use a different cache store in production.
  # config.cache_store = :mem_cache_store

  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
  # config.action_controller.asset_host = 'http://assets.example.com'

  # Ignore bad email addresses and do not raise email delivery errors.
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
  # config.action_mailer.raise_delivery_errors = false

  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
  # the I18n.default_locale when a translation cannot be found).
  config.i18n.fallbacks = true

  # Send deprecation notices to registered listeners.
  config.active_support.deprecation = :notify

  # Use default logging formatter so that PID and timestamp are not suppressed.
  config.log_formatter = ::Logger::Formatter.new

  # Do not dump schema after migrations.
  config.active_record.dump_schema_after_migration = false
end
Ebad Saghar
  • 1,107
  • 2
  • 16
  • 41
  • Take a look at my answer here http://stackoverflow.com/questions/25841377/rescue-from-actioncontrollerroutingerror-in-rails4/25842118#25842118, I'm in details explain there how to achieve what you ask in your last sentence (create a custom 404 and 500 pages and rescue some exceptions by rendering this custom pages). – Andrey Deineko Apr 19 '15 at 08:20
  • I tried doing that, but am not able to reach the new 404 page, regardless of the environment – Ebad Saghar Apr 19 '15 at 08:43
  • you have to be careful with environments, routes and at all. It was an example from a working app, so please take a more precise look and it should work – Andrey Deineko Apr 19 '15 at 08:50

1 Answers1

1

With standard configuration, the error page is only used while your Rails Environment is set to development.

You can change this in your:

config/enviroment/development.rb

The point is to use this as a debugging resource while developing your website. In production you should instead use a custom 404 page.

To actually remove the routes, you would need to comment out or remove them from your routes.rb

Edit after comments and updated question

The internal error Missing secret_token and secret_key_base for 'production' environment, set these values in config/secrets.yml tells you that you have not configured your secret_key properly.

You need a file called config/secrets.yml (this file should be in version-control)

development:
  secret_key_base: ---some-code---

test:
  secret_key_base: ---some-code---

# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

And you can generate this secret with rake secret.

(Now I assumed that you are running Rails 4.2)

davidwessman
  • 1,170
  • 8
  • 27