Ruby on Rails: как выполнить функцию перед сохранением в базу данных? - PullRequest
0 голосов
/ 06 июля 2011

Я хочу изменить данные и затем сохранить их в базе данных при использовании функции new / create приложения.

Ответы [ 4 ]

5 голосов
/ 06 июля 2011
before_create :myfunction

def myfunction
  # Edit data
end

Должен сделать свое дело.

4 голосов
/ 06 июля 2011

Вы должны использовать активные обратные вызовы, как указано в двух других ответах. * Before_create * определенно тот, который вы ищете. Всегда делайте такую ​​логику в модели, а не в контроллере. Rails-мантра (одна из многих) - это «тонкий контроллер, толстая модель», которая упрощает повторное использование кода.

Документацию по активным обратным вызовам можно проверить по адресу:

http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

Также, вот пример того, чего вы хотите достичь

class MyClass < ActiveRecord::Base
    before_create :alter_my_data

    def alter_my_data
        # any manipulation you want to do here before saving
    end
end
0 голосов
/ 06 июля 2011

На ваш вопрос уже был дан ответ выше, но я действительно рекомендую вам ознакомиться с официальными руководствами по Ruby on Rails:

http://guides.rubyonrails.org/

Руководства легко понять и охватывают многие частирельсов.На ваш вопрос ответили в разделе «Активная проверка записей и обратные вызовы».

0 голосов
/ 06 июля 2011
class User < ActiveRecord::Base
  before_create :validate_username

  def validate_username
    raise "blank error" if username.blank?
    #....your code
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...