/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:31:in `interpolate'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:30:in `gsub'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:30:in `interpolate'
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/base.rb:2036:in `inject'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:29:in `each'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:29:in `inject'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:29:in `interpolate'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/attachment.rb:392:in `interpolate'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/attachment.rb:113:in `path'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/storage.rb:156:in `s3_path_url'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:31:in `send'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:31:in `interpolate'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:30:in `gsub'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:30:in `interpolate'
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/base.rb:2036:in `inject'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:29:in `each'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:29:in `inject'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:29:in `interpolate'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/attachment.rb:392:in `interpolate'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/attachment.rb:104:in `url'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:46:in `url'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:31:in `send'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:31:in `interpolate'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:30:in `gsub'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:30:in `interpolate'
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/base.rb:2036:in `inject'
/Library/Ruby/Gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb:29:in `each'
I loved using the Rails plugin Paperclip along with Amazon’s Simple Storage Service (’s3′) to do file attachments and uploads in Ruby on Rails.
Here are some of the missing steps from using the Paperclip instructions at github and other places.
1) Your model (the one you are attaching file to) will need something like this:
has_attached_file :profile_pic,
:styles => { :medium => “300×300>”, :thumb => “100×100>” },
:storage => :s3,
:s3_credentials => “#{RAILS_ROOT}/config/amazon_s3.yml”,
:path => “:class/:id/:style.:extension”leaving out the :path, caused a recursive ’stack level too deep’ error for me.
2) add gem.config “right_aws” to your environmnent.rb file.
Terminal: ’sudo rake gems:install’ to install the gem
3) The default /config/amazon_sq.yml file misnames ‘bucket_name’, and needs to be called just ‘bucket’.
But overall, this is an amazing solution for file uploads in Rails. Applause to thoughtbot, amazon, and the open source community that has worked on this.
Archive for February, 2010
Paperclip, Amazon s3 – Stack Level Too Deep
February 26, 2010Related `select` Dropdowns in Rails Views
February 17, 2010What you do is create a select tag with the “
select
” method like so: (using the client/project scenario)
f.select(:client_id,
The next value you pass to the select method has to be an array of text/value pairs
like this:
[ [ "Jason Johnson", 1], ["Trey Piepmeier", 2], ["Royall", 3] ]
In order to create this array, you do a find on your clients table and use Ruby’s “
collect
” method.like so:
Client.find(:all).collect {|c| [ c.name, c.id ]}
So, altogether now:
f.select(:client_id, Client.find(:all).collect {|c| [ c.name, c.id ] })
Kill a process using a particular port in ubuntu
February 15, 2010I had a problem with tomcat, it says that port 8080 is already in use so I can not use it …
What I did ?
1- Find what application/process is using the pro, type:
sudo netstat -lpn |grep :8080
and press Enter.
You will get an output similar to this one
tcp6 0 0 :::8080 :::* LISTEN 6782/java
2- I have got the process Id, which is 6782, now this is the process that is using port 8080.
3- Kill the process, type:kill 6782
kill 6782
and now port 8080 is free.
no such file to load — hmac-sha1
February 15, 2010no such file to load — hmac-sha1
July 3rd, 2009 by Radar
When you encounter the above error, it means you’re missing the ruby-openid ruby-hmac gem. I couldn’t find anything on google that clearly stated this, so I’m posting it here as a reminder for myself and others.
Thanks to the comments for clarifying the gem needed.
This entry was posted on Friday, July 3rd, 2009 at 4:31 pm and is filed under Cool Shit, Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
no such file to load — hmac-sha1
Setting up a remote mysql DB
February 15, 2010By default, MySQL database server remote access disabled for security reasons. However, some time you need to provide the remote access to database server from home or from web server.
Solution1
Step # 1: Login over ssh
First, login over ssh to remote MySQL database server
Step # 2: Enable networking
Once connected you need edit the mysql configuration file
my.cfg using text editor such as vi.
In Debian Linux file is located at /etc/mysql/my.cnf
# vi /etc/my.cnf
Step # 3: Once file open, locate line that read as [mysqld]
Make sure line skip-networking is commented (or remove line) and add following line
bind-address=YOUR-SERVER-IP
For example, if your MySQL server IP is 172.20.5.2 then entire block should be look like as follows:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 172.20.5.2
# skip-networking
….
..
….
Where,
bind-address : IP address to bind to.
skip-networking : Don’t listen for TCP/IP connections at all. All interaction with mysqld must be made via Unix sockets. This option is highly recommended for systems where only local requests are allowed. Since you need to allow remote connection this line should removed from file or put it in comment state.
Step# 4 Save and Close the file.
Restart your mysql service to take change in effect
# /etc/init.d/mysql restart
Step # 5 Grant access to remote IP address
# mysql -u root –p mysql
Grant access to new database
If you want to add new database called foo for user bar and remote IP 162.54.10.20 then you need to type following commands at mysql> prompt:
mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@’162.54.10.20′ IDENTIFIED BY ‘PASSWORD’;
Grant access to existing database
Let us assume that you are always making connection from remote IP called 162.54.10.20 for database called webdb for user webadmin then you need to grant access to this IP address. At mysql> prompt type following command for existing database:
mysql> update db set Host=’162.54.10.20′ where Db=’webdb’;
mysql> update user set Host=’162.54.10.20′ where user=’webadmin’;
Step # 5: Logout of MySQL
Type exit command to logout mysql
mysql> exit
Step # 6: Test it
From remote system type command
$ mysql -u webadmin –h 172.20.5.2 –p
You can also use telnet to connect to port 3306 for testing purpose
$ telnet 172.20.5.2 3306
Solution 2
All you need to do is specify remote mysql host with –h option. For example to connect remote mysql server called server.test.com you need to type command as follows
$ mysql –u ruchi –h server.test.com -p
OR if you with to use MySQL server ip address (172.20.1.101)
Restart apache in centOS
February 3, 201020 2006f October, 2006
restarting apache httpd in centos
always developed in winxp for the time being and also being new to linux i am forced to learn to make changes in php.ini and needed to restart apache or httpd
to restart:
/sbin/service httpd restart
to start:
/sbin/service httpd start
to stop:
/sbin/service httpd stop
Sudo gem install mysql, mysql-devel problems in CentOs
February 3, 2010Installing Mysql gem on CentOS
Migrating from Debian to CentOS was certainly not pleasant one. But slowly I am getting used to yum (I still miss my apt). Recently I faced an issue installing mysql gem. Here is short description of problem followed by solution.
[root@VMVSOCT02 /]# gem install mysql
Need to update 0 gems from http://gems.rubyforge.org
complete
Select which gem to install for your platform (i386-linux)
1. mysql 2.7.3 (mswin32)
2. mysql 2.7.1 (mswin32)
3. mysql 2.7 (ruby)
4. mysql 2.6 (ruby)
5. Skip this gem
6. Cancel installation
> 3
Building native extensions. This could take a while…
ERROR: While executing gem … (Gem::Installer::ExtensionBuildError)
ERROR: Failed to build gem native extension.
ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lm… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lz… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lsocket… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lnsl… yes
checking for mysql_query() in -lmysqlclient… no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
–with-opt-dir
Installation Steps
1. yum uninstall mysql
2. yum install mysql
3. yum install mysql-devel (to install development libraries, For Debian, Knoppix, Buildix user apt-get install libmysqlclient15-dev)
4. gem install mysql
[root@VMVSOCT02 /]# gem install mysql
Need to update 1 gems from http://gems.rubyforge.org
.
complete
Select which gem to install for your platform (i386-linux)
1. mysql 2.7.3 (mswin32)
2. mysql 2.7.1 (mswin32)
3. mysql 2.7 (ruby)
4. mysql 2.6 (ruby)
5. Skip this gem
6. Cancel installation
> 3
Building native extensions. This could take a while…
Successfully installed mysql-2.7
Create database users
octopus/octopus
grant permission on octopus_development, octopus_test
source:
I got disconnected while running yum install mysql-devel. When I tried to run the program again, I ran into some problem. I can’t run yum install mysql-devel.
Another app is currently holding the yum lock; waiting for it to exit…
The other application is: yum
Memory : 39 M RSS ( 79 MB VSZ)
Started: Tue Feb 2 23:06:31 2010 – 04:36 ago
State : Sleeping, pid: 16056
Another app is currently holding the yum lock; waiting for it to exit…
The other application is: yum
Memory : 39 M RSS ( 79 MB VSZ)
Started: Tue Feb 2 23:06:31 2010 – 04:38 ago
State : Sleeping, pid: 16056
Another app is currently holding the yum lock; waiting for it to exit…
The other application is: yum
Memory : 39 M RSS ( 79 MB VSZ)
Started: Tue Feb 2 23:06:31 2010 – 04:40 ago
State : Sleeping, pid: 16056
Another app is currently holding the yum lock; waiting for it to exit…
The other application is: yum
Memory : 39 M RSS ( 79 MB VSZ)
I did some googling and found the solution:
# ps aux | grep yum
note the pid number of the process and run this to kill the process:
# kill (insert pid number)
check to see if the process has been killed by rerunning:
# ps aux | grep yum
git submodule error
February 3, 2010How to load YML files
February 1, 2010So back in July 2007 I posted a blog on making configuration files with YAML, and I’ve been noticing a lot of readership on the old article. Because it seems that a lot of people are reading it I felt it was important to show how I apply this nowadays.
First I put my config.yml file within the /config/ directory within my Rails application. It looks something like this:
development: &non_production_settings
:google_analytics:
:api_key: "[Enter Google ID]"
:site:
:title: "[Title]"
:address: "http://localhost:3000/"
test:
<<: *non_production_settings
production:
:google_analytics:
:api_key: "[Enter Google ID]"
:site:
:title: "[Title]"
:address: "[Address]"
Then, I create a new file called load_config.rb within the /config/initializers directory. You can name the file whatever you want – that’s just what I call it. This is where the actually YAML loading is going to happen – and this is what it looks like:
raw_config = File.read(RAILS_ROOT + "/config/config.yml")
APP_CONFIG = YAML.load(raw_config)[RAILS_ENV]
Now any time I want to all one of these variables I just call it like:
<%= APP_CONFIG[:site][:title] %>
source: http://blog.innovativethought.net/2009/01/02/making-configuration-files-with-yaml-revised/