Помните, что избавления от пробела и "_" от URL недостаточно, поскольку есть некоторые другие символы, которые могут нарушить ваш HTML-код и даже вызвать внедрение скрипта. <>'"/\
.
Я предлагаю передать все буквы и цифры - все остальное перевести на -
.
class Post < ActiveRecord::Base
attr_protected :url
validates_presence_of :title
before_create :generate_url
private
def generate_url
self.url = title.strip.downcase.gsub(/[^a-z0-9]+/,'-')
end
end
Контроллер неизменен.