簡體   English   中英

為什么在Trailblazer中出現“沒有將符號隱式轉換為哈希值”錯誤?

[英]Why does the “no implicit conversion of Symbol into Hash” error occur in Trailblazer?

我遇到了一個問題,一個星期無法自己解決-我很絕望。

我有一個帶有Trailblazer的Rails 5.2項目。 在應用程序的一個地方,我捕獲到此錯誤:

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描述的方法,但是由於我上面寫的)-此文件不影響任何內容。 顯然,錯誤是在處理之前出現的。

可能是什么問題呢

我不確定您要在單元格的第一行中嘗試做什么

如果我沒記錯的話, option_property >在Cells項目中的任何地方都不是定義的方法調用。

PS:我建議您前往TRB項目的Gitter渠道,在那里得到的響應比其他任何地方都快。

問題是context: :i_am_a_symbol ,該選項期望散列而不是符號!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM