как переопределить [] скобки в рубине?

Исправлено путем удаления следующей папки:

C: \ Users {имя пользователя} \ AppData \ Local \ Microsoft \ VisualStudio {номер версии} \ ComponentModelCache

10
задан Elie Teyssedou 23 March 2018 в 17:53
поделиться

2 ответа

You need to use params[:Jobs][:clearance]

params is a hash of all the request parameters. But params[:Jobs] is ALSO a hash of all :Jobs parameters. So calling params[:Jobs][:clearance] is calling the [] method on the params[:Jobs] object passing :clearance in as a parameter.

10
ответ дан 3 December 2019 в 13:15
поделиться

kmorris решил вашу проблему (очень хорошо), но я хотел бы ответить на ваш вопрос: вы можете переопределить операторы [] и [] =, потому что они являются методами (как и почти все), но вы должны хорошо подумать о том, что вы делаете, потому что вы можете сломать массу вещей.

class AntiArray < Array

  def [](ind)
    self.fetch(-ind)
  end

end

y = AntiArray.new([1,2,3,4])

y[1]

=> 4
53
ответ дан 3 December 2019 в 13:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: