рельсы гсуб вопрос - PullRequest
       10

рельсы гсуб вопрос

2 голосов
/ 28 сентября 2010

Как я могу заменить "" и "_" на "-" в моем контроллере при создании нового сообщения?

У меня есть следующие поля формы: заголовок url ​​content

Я хочувыполнить gsub в поле url.

Спасибо ...

Ответы [ 4 ]

1 голос
/ 28 сентября 2010

Помните, что избавления от пробела и "_" от 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

Контроллер неизменен.

0 голосов
/ 28 сентября 2010

title.gsub(/[\s_]+/, '-').strip

0 голосов
/ 28 сентября 2010

Если вы пытаетесь убить заголовок, то можете найти friendly_id Нормана:

http://github.com/norman/friendly_id

Он позаботится о создании постоянных ссылок для вас, поэтомуВам не нужно беспокоиться о дублировании или генерации URL в вашем приложении.Он также интегрируется с ActiveRecord для переопределения методов поиска.

0 голосов
/ 28 сентября 2010

title.gsub ("", "-"). Gsub ("_", "-")

...