Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6348877
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T21:30:23+00:00 2026-05-24T21:30:23+00:00

I’ve deployed my rails application on a staging/production machine running Apache and Phusion Passenger

  • 0

I’ve deployed my rails application on a staging/production machine running Apache and Phusion Passenger but cannot get the Paperclip gem to load correctly (or at least to get the piece of the application working that uses it). Other gems seem to load fine and when I set config.cache_classes to false in the RAILS_ROOT/config/environments/staging.rb the rest of the application works fine. If it is set to true I get the following Passenger message in the browser (and apache error log) and cannot use the application at all:

Error message:
undefined method `validates_attachment_presence' for #<Class:0xb618e938>

Exception class:
NoMethodError

I’ve googled around for quite some time but cannot find a solution for this issue I am having. I hope I am not overlooking something obvious…

UPDATE 21/8: On the same box running the rails app with sudo script/server -b 17x.7x.16x.3x -e staging works fine. Could this be a permission problem and Passenger not being able to find the installed Paperclip Gem?

Hope you can give me some pointers, let me know if you need more info! Thanks Mark

Some information on my environment:

$ rails -v
Rails 2.3.5

RAILS_ROOT/config/environment.rb has this set:

config.gem "paperclip", :version => "~> 2.3"

Gems environment:

   $ gem env
    RubyGems Environment:
      - RUBYGEMS VERSION: 1.3.5
      - RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]
      - INSTALLATION DIRECTORY: /var/lib/gems/1.8
      - RUBY EXECUTABLE: /usr/bin/ruby1.8
      - EXECUTABLE DIRECTORY: /var/lib/gems/1.8/bin
      - RUBYGEMS PLATFORMS:
        - ruby
        - x86-linux
      - GEM PATHS:
         - /var/lib/gems/1.8
         - /home/mark/.gem/ruby/1.8
      - GEM CONFIGURATION:
         - :update_sources => true
         - :verbose => true
         - :benchmark => false
         - :backtrace => false
         - :bulk_threshold => 1000
      - REMOTE SOURCES:
         - http://gems.rubyforge.org/

Gems list on the server:

$ gem list

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.9, 2.3.5)
actionpack (3.0.9, 2.3.5)
activemodel (3.0.9)
activerecord (3.0.9, 2.3.5)
activeresource (3.0.9, 2.3.5)
activesupport (3.0.9, 2.3.5)
arel (2.1.3, 2.0.10)
builder (3.0.0, 2.1.2)
capistrano (2.6.0)
cocaine (0.1.0)
daemon_controller (0.2.6)
erubis (2.6.6)
fastthread (1.0.7)
highline (1.6.2)
i18n (0.4.2)
mail (2.2.19)
mime-types (1.16)
mysql (2.8.1)
net-scp (1.0.4)
net-sftp (2.0.5)
net-ssh (2.1.4)
net-ssh-gateway (1.1.0)
paperclip (2.3.12)
passenger (3.0.7)
polyglot (0.3.1)
rack (1.2.3, 1.1.0, 1.0.1)
rack-mount (0.6.14)
rack-test (0.5.7)
rails (2.3.5)
rake (0.9.2, 0.8.7)
treetop (1.4.9)
tzinfo (0.3.29)
will_paginate (2.3.15)

Paperclip gem is installed here:

$ sudo find / -name 'paperclip'
/var/lib/gems/1.8/doc/paperclip-2.3.12/rdoc/files/lib/paperclip
/var/lib/gems/1.8/doc/paperclip-2.3.12/rdoc/files/lib/generators/paperclip
/var/lib/gems/1.8/gems/paperclip-2.3.12/lib/paperclip
/var/lib/gems/1.8/gems/paperclip-2.3.12/lib/generators/paperclip
/var/lib/gems/1.8/gems/paperclip-2.3.12/generators/paperclip

Apache virtualhost config:

$ more /etc/apache2/sites-available/staging.mydomain.com 
<VirtualHost *:80>
    ServerName staging.mydomain.com
    DocumentRoot /u/apps/mydomain.com/current/public
    RailsEnv staging 
</VirtualHost>

Some additional stack trace from the passenger page (btw: tried removing the will_paginate plugin, but the result is exactly the same; it throws an error at active_record/base.rb):

Backtrace:
#   File    Line    Location
0   /var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active_record/base.rb 1959    in `method_missing_without_paginate'
1   /u/apps/mydomain.com/releases/20110705192718/vendor/plugins/will_paginate/lib/will_paginate/finder.rb   170 in `method_missing'
2   /u/apps/mydomain.com/releases/20110705192718/app/models/image.rb    5   
3   /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `gem_original_require'
4   /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `require'
5   /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb   158 in `require'
6   /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb   265 in `require_or_load'
7   /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb   224 in `depend_on'
8   /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb   136 in `require_dependency'
9   /var/lib/gems/1.8/gems/rails-2.3.5/lib/initializer.rb   414 in `load_application_classes'
10  /var/lib/gems/1.8/gems/rails-2.3.5/lib/initializer.rb   413 in `each'

Code for the image class:

class Image < ActiveRecord::Base

  belongs_to :user

  validate_attachment_presence :photo
  validates_uniqueness_of :photo_file_name, :scope => :user_id

  has_attached_file :photo, :url => "/assets/:user/app/:class/:style_:basename.:
extension", 
    :path => "#{APP_PATH}/:user/app/:class/:style_:basename.:extension",
    :styles => {
      :thumb=> "50x50#",
      :large =>   "400x" }
end

config/environment.rb

# Be sure to restart your server when you modify this file

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION

# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')

Rails::Initializer.run do |config|
  config.time_zone = 'UTC'
  config.active_record.observers = :user_observer #, :website_observer
  config.gem "paperclip", :version => "~> 2.3"
end

SITE_NAME = 'Mydomain.com'
CMS_PREFIX = 'joomla'

config/environments.rb/staging.rb

# Settings specified here will take precedence over those in config/environment.rb

# The staging environment is meant for finished, apps and final acceptance testing.
# Code is not reloaded between requests
config.cache_classes = true

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


ActionController::Base.asset_host = "staging.mydomain.com"

DOCUMENT_ROOT = "/var/www"
APP_PATH = "/u/apps"
DB_PREFIX = "a001"
DB_USER = "joomla" 
DB_PWD = "*****"
GIT_URL = "git@github.com:****/mydomain.git"

ActionMailer::Base.delivery_method = :smtp

ActionMailer::Base.smtp_settings = {
    :enable_starttls_auto => true,    
    :address => "smtp.gmail.com",
    :port => "587",
    :domain => "gmail.com",
    :authentication => :plain,
    :user_name => "****@gmail.com",
    :password => "****"
  }
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T21:30:26+00:00Added an answer on May 24, 2026 at 9:30 pm

    OK, I’ve solved this by adding

    require "paperclip"
    

    to the image.rb class.

    I am going with this workaround for now.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm parsing an RSS feed that has an &#8217; in it. SimpleXML turns this
We're building an app, our first using Rails 3, and we're having to build
I have a bunch of posts stored in text files formatted in yaml/textile (from
I have this code: - (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock { NSString *someString = [[NSString
I am trying to loop through a bunch of documents I have to put
I'm making a simple page using Google Maps API 3. My first. One marker
I have some data like this: 1 2 3 4 5 9 2 6

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.