что делать def self.up, def up, def self.down, def down mean?

Может кто-нибудь объяснить мне, пожалуйста, какая разница между следующими вещами?

  1. def self.up
  2. def up
  3. def self.down
  4. def down
6
nl ja de
добавлено автор Paul, источник

2 ответы

self.up and up contains the code that is ran by migrations when you do rake db:migrate. self.up is an older version of up. I'm not sure when they introduced this but until 3.0, they were using self.up.

self.down and down should contain the code that reverses the effect of the up methods. so if you created a table on up, you should drop that table on down. These methods are called when running rake db:rollback.

На самом деле существует новый метод миграции, называемый change , который обычно используется, если для рельсов легко определить противоположность тому, что вы делаете, например, создание таблиц.

11
добавлено
лучшее объяснение! Спасибо!
добавлено автор Alon Shmiel, источник

def self.up is a class method (you can send it to the class: Klass.up), def up is a normal method (you can send it to an object). Same for down.

4
добавлено
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков

Rails Chat
Rails Chat
87 участник(ов)

You are welcome to discuss Ruby On Rails development process and other stuff