Как лучше всего очистить поля в Ruby on Rails

В настоящее время у меня есть контроллер, захватывающий некоторый html из TinyMCE на переднем конце. Если я возьмусь с firebug, можно будет отправлять теги сценария и вставлять предупреждающие сообщения и т. Д. На экран.

edit: В настоящее время я исправляю это в модели с помощью помощника sanitize:

require 'action_view'

class NotesController < AuthApplicationController

  include ActionView::Helpers::SanitizeHelper
...
  def update
    params[:note][:content] = sanitize(params[:note][:content],
        :tags => %w(a object p param h1 h2 h3 h4 h5 h6 br hr ul li img),
        :attributes => %w(href name src type value width height data) );

    @note.update_attributes(params[:note])

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

Спасибо за любые предложения.

править:

Здесь есть некоторые успехи.

В моих / Libs у меня есть

module SanitizeUtilities
  def sanitize_tiny_mce(field)
    ActionController::Base.helpers.sanitize(field,
      :tags => %w(a b i strong em p param h1 h2 h3 h4 h5 h6 br hr ul li img),
      :attributes => %w(href name src type value width height data) );
  end
end

Затем в моих моделях код сворачивается до

class MyModel < ActiveRecord::Base
  include ::SanitizeUtilities
...
  before_save :sanitize_content
...
  def sanitize_content
    self.content = sanitize_tiny_mce(self.content)
  end

end

Это похоже на удаление нежелательной разметки без особой суеты.

Довольно новичок в рельсах, так нервничаю, что могу делать что-то не так. Кто-нибудь видит здесь потенциальные недостатки?

Еще раз спасибо

8
задан Chris 19 January 2012 в 12:16
поделиться