Создать новую строку после сохранения записи - PullRequest
0 голосов
/ 16 июля 2009

Пользователь отправляет URL, который помещается в article.url через метод создания скаффолда. Я могу разобрать URL так:

def parse_url
  elements = @article.url.split("/")
  if(elements[0] == "http:")
    @home = elements[2] #elements[1] will be an empty string because of the // in the URL
  else
    @home = elements[0]
  end
end

Что бы я предпочел сделать, это проанализировать URL-адрес после того, как пользователь сохранит его с помощью метода create, а затем вставить это значение в новую строку в базе данных в таблице article.

1 Ответ

2 голосов
/ 17 июля 2009

Я бы использовал что-то вроде следующего:

class Article
  attr_accessor :unparsed_url

  before_validation_on_save :parse_url

  private

  def parse_url
    return unless unparsed_url

    elements = unparsed_url.split("/")
    if(elements[0] == "http:")
      self.home = elements[2]
    else
      self.home = elements[0]
    end
  end
end

Вы бы использовали unparsed_url в формах Rails. Использование такого виртуального атрибута будет хорошо работать с проверкой формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...