Error when updating the user from a form
ActiveRecord::RecordInvalid (Validation failed: Password confirmation can’t be blank, Password is too short (minimum is 4 characters), Password can’t be blank):
Suggestion
It’s probably because of the restrictions on the User model (attr_accessible or attr_protected, in particular). But allowing users access to any part of the User model via mass assignment is dangerous. That’s why many people create a separate Profile model and link it via a 1:1 (belongs_to, has_one) relationship.
Solution
Coming soon
Tags:
Authentication,
rails,
restful,
Ruby,
ruby on rails
2 Comments »
This is what I had to do to get it to work on CentOS 5. For some reason, FreeType would not work with yum so I built it from scratch. I’m not sure if the all the “yum install”s were needed, but I did it anyway.
#yum install freetype — did not work
cd /usr/local/src
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.3.5.tar.gz
tar xvzf freetype-2.3.5.tar.gz
./configure
make
make install
Read the rest of this entry »
Tags:
CentOS,
FreeType,
ghostscript,
glib,
ImageMagick,
irb,
LD_LIBRARY,
libjpeg,
libpng,
Linux,
make,
make install,
Rmagick,
wget,
yum
No Comments »
Install
After installing PostgreSQL on Windows, I converted my Rails application from MySQL to PostgreSQL with the following steps:
- Create a new database in PostgreSQL
- Installed
postgres-pr gem (Ruby driver) because the postgres gem (native driver) didn’t work. Will figure out why later on.
- Changed the appropriate Rails config stuff in
database.yml
development:
adapter: postgresql
database: database_name
username: postgres
password: password
host: localhost
- I ran only my first Rails migration to test that it worked using this command:
rake db:migrate VERSION=1. My first migration (001_create_heartrates.rb) creates a table in the database so it will be easy to test.
Robby explains a quick way to migrate the data as well
Test
You can test that the migration worked via 2 methods (GUI or command line)
- Using following commands with the
psql command line utility (Start Menu -> PostgreSQL -> psql to postgres):
| psql commmand |
Description |
\? |
help |
\c database_name |
connect to a database (many other commands won’t work until you execute this) |
\dt |
show tables (execute \c first) |
\d table_name |
describes a particular table (e.g. table_name) |
- Using the pgAdmin III GUI:
- The database table is deeply nested in the tree, I missed it at first. Go to
PostgreSQL Database Server 8.2 -> Databases -> database_name -> Schemas -> public -> Tables -> table_name
Tags:
database,
migration,
nested,
pgAdmin,
postgres-pr,
PostgreSQL,
psql,
rails,
ruby on rails,
schemas,
table,
utility
No Comments »
I wanted to quickly create a new database via pgAdmin III, so I used the following properties
Note: initdb (which ran during step 6 of the installation process) creates two initial databases, namely postgres and template1. Also, the cluster created by initdb also comes with two templates (template0 and template1). template0 is a backup for template1.
| Setting |
Value |
Description |
| Owner: |
postgres |
I assume postgres refers to the database superuser, not the Windows login. |
| Encoding: |
UTF8 |
Because a PostgreSQL dialog box suggested it would be most flexible in case other clients decided to access the data (instead of SQL_ASCII) |
| Template: |
template1 |
schema extensions and objects are usually loaded into template1 |
| Tablespace: |
pg_default |
The pg_default tablespace is the default tablespace of the template1 and template0 databases (and, therefore, will be the default tablespace for other databases as well, unless overridden by a TABLESPACE clause in CREATE DATABASE).Tablespaces in PostgreSQL allow database administrators to define locations in the file system where the files representing database objects can be stored. Two tablespaces are automatically created by initdb.
- The pg_global tablespace is used for shared system catalogs.
- The
pg_default (described above)
One of the things that the tablespace defines is the file path for the data as shown with this command: CREATE TABLESPACE fastspace LOCATION ‘/mnt/sda1/postgresql/data’; |
Tags:
database,
initdb,
pgAdmin,
postgres,
PostgreSQL,
sql,
UTF8
2 Comments »