Вопрос:

Почему значение передается методу в необязательном хеше `nil`? (Рубин)

ruby-on-rails ruby hash

84 просмотра

1 ответ

1993 Репутация автора

Я создал собственный метод и пытаюсь передать ему значение через необязательный хеш.

Но сообщение об ошибке указывает мне, что метод фактически не получает значение, которое я передаю, следовательно nil.

Посмотреть:

<%= f.custom_form :height, { item: ‘weight’} %>

Метод:

def custom_form(type, additional_items = {} )
  class_array = [‘form_control’]

  if additional_items
    class_array << additional_items[:item]
  end
end

Ошибка:

нет неявного преобразования ноль в строку

Но я не уверен, почему это происходит.

Заранее извиняюсь, если это вопрос новичка.

Автор: tim_xyz Источник Размещён: 22.08.2016 09:21

Ответы (1)


1 плюс

28378 Репутация автора

Эта линия неоднозначна

<%= f.custom_form :height, { item: ‘weight’} %>

потому что это может быть интерпретировано как один аргумент и блок

Попробуйте использовать явные скобки, и вам не нужны хеш-скобки, они будут приняты

<%= f.custom_form(:height, item: ‘weight’) %>
Автор: SteveTurczyn Размещён: 22.08.2016 09:42
Вопросы из категории :
32x32