Вопрос

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

У меня есть следующие поля формы: Заголовок URL Content

Я хочу выполнить GSUB на поле URL.

Спасибо...

Это было полезно?

Решение

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

http://github.com/norman/friendly_id

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

Другие советы

Помните, что избавление от космоса и «_» от 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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top