Rails has something called generator to create all needed files for controllers, models and other things like CSS. It is nice that Rails has also destroy script to remove all related files. Removing whole Session controller would be simple like that:
./script/destroy controller Session
I’ve just learned (the hard way ;-) ) that You should not use sessions table in DB. It is linked with some Ruby on Rails internals. Why dont use? Because somewhere in ActionPack is used instance variable @session. Using table named sessions in rails conventions mean that should exist class SessionController, and in it will be using @session to pass data to views (all generated via scaffold). Then crash happens and You will find following error:
I’ve complained several times about troubles debugging rails on this blog. But maybe it will come some breakthrough. I did not tested it, but it looks very promising.
Last update – 2006-05-30
Ruby on Rails praises convention over configuration. Nice, but You have to be aware of this conventions, or You may run into troubles. Let’s take DB column names. RoR makes many assumptions about them, allowing this way many magic things happen.
Currently I’m aware of following conventions:
- column id is reserved for table primary index
- suffix _at for datetime fields
- suffix _on for date field
- suffix _id for reference to other table
- column type single table inheritance (see: RoR Wiki)
- dont use sessions table in DB (or don’t use code generated by scaffold) details explained http://nhw.pl/wp/2006/05/30/dont-use-sessions-table-in-rails
I was not aware about type column, and doing application for import scan results from Nessus I ran on following error:
SyntaxError ((eval):1:in `compute_type': compile error
(eval):1: parse error, unexpected tINTEGER
It was caused by type column, since DB structure was tailored to match Nessus export to SQL file, which was using such a column.
Columns named created_on and updated_at are automagically set for record creation date and update time respectively
As for now I have removed Google search from this blog. Why? As I wrote this blog currently is almost not indexed (I have no idea what happened). And pages which are indexed were indexed when they are on main page. Google redirects users to main page of NetManiac and there is new content. User has no chance to find interesting content for him. So I have enabled WordPress native search (long live subversion!). Less fancy, but more accurate.