Почему в Trailblazer возникает ошибка «неявного преобразования символа в хэш»? - PullRequest
0 голосов
/ 29 октября 2018

Я столкнулся с одной проблемой, которую не могу решить самостоятельно в течение недели - я в отчаянии.

Я получил проект Rails 5.2, на борту которого есть Trailblazer.В одном месте приложения я ловлю эту ошибку:

TypeError - no implicit conversion of Symbol into Hash:
  app/concepts/post/admin/views/_authors_tab.slim:10:in `block (2 levels) in singleton class'
  app/concepts/post/admin/views/_authors_tab.slim:9:in `block in singleton class'
  app/concepts/post/admin/views/_authors_tab.slim:65534:in `singleton class'
  app/concepts/post/admin/views/_authors_tab.slim:65531:in `__tilt_70096639860360'
  app/concepts/post/admin/views/show.slim:14:in `block in singleton class'
  app/concepts/post/admin/views/show.slim:65534:in `singleton class'
  app/concepts/post/admin/views/show.slim:65531:in `__tilt_70096639860360'
  app/concepts/post/admin/cell.rb:13:in `show'
  app/views/admin/posts/show.slim:3:in `_app_views_admin_posts_show_slim__1322321696587881215_70096664842560'
  app/controllers/application_controller.rb:71:in `apply_time_zone'

Started POST "/__better_errors/51d28299c14c669d/variables" for ::1 at 2018-10-22 15:00:18 +0300

_authors_tab.slim: 10 (9 и 10 строк):

- authors.each do |author|
  = concept 'post/author/list_item/cell', author, context: :admin

Нижекод, который я специально вырезал для лучшего представления (ошибка, конечно, сохранилась):

class Post::Author::ListItem::Cell < RBlog::Cell
  option_property :context, nil_check: true

  def show
    render
  end
end

Это файл ( app / concepts / r_blog / cell / option_property.rb ) с описанием неизвестного метода:

module RBlor::Cell::OptionProperty
  def option_property(name, nil_check: false)
    if nil_check
      define_method(name) do
        raise "Option #{name} cannot be blank" if @options[name].nil?
        @options[name]
      end
    else
      define_method(name) { @options[name] }
    end
    private name
  end
end

Что касается файла show.slim из приведенного выше кода - я прокомментировал все его содержимое, удалил его и даже оставил его нетронутым (с помощью методовописано в Post :: Author :: ListItem :: Cell, но которые были удалены, как я писал выше) - этот файл ни на что не влияет.Видимо ошибка появляется перед обработкой.

В чем может быть проблема

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Проблема в context: :i_am_a_symbol, эта опция ожидает хеш, а не символ!

0 голосов
/ 29 октября 2018

Я не уверен, что вы пытаетесь сделать в первой строке в ячейке

option_property -> это не определенный вызов метода где-либо в проекте Cells, если я правильно помню.

P.S .: Предлагаю отправиться на канал Gitter для проекта TRB, там вы получите ответ гораздо быстрее, чем где-либо еще.

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