【问题标题】:Rails Simple Form Inspection error 'null' is too big for type inferenceRails 简单表单检查错误“null”对于类型推断来说太大了
【发布时间】:2018-04-25 21:46:48
【问题描述】:

不完全确定这是我的代码的实际问题,还是可能是更新后出现的 RubyMine 错误,但并非我的所有表单都有问题。

我有一个简单的表单,整个表单被突出显示,检查错误:'null' is too big for type inference。该表格工作正常,我没有遇到任何实际错误。弄乱文件我可以让检查消失的唯一方法是从表单中删除按钮。

按钮有点复杂,但功能是:

  • 覆盖验证的提交按钮(仅用于开发)

  • 禁用虚假提交按钮(仅供用户使用

  • 隐藏的提交按钮(触发JS的另一个按钮成功时显示)

  • 取消按钮

  • 表单中还有另一个按钮,只是触发一个JS方法

如果我删除所有按钮,错误就会清除,但删除一些按钮和留下一些按钮的组合无法消除错误。只有将它们全部删除才能清除它。目前是 HAML 中的表单,但即使在转换为 ERB 后,它仍然给出相同的检查错误。

我意识到我可以忽略该错误,因为它只是一个检查错误并且它会运行。但是,如果检查确实显示出潜在问题,我想解决它。由于它突出显示了整个文件,因此几乎不可能看到其他错误/检查。提前感谢您提供的任何帮助。

# Button to run JS method
<%= f.button :button, 'Run Green Sheet Calculations', type: 'button', id: 'run_green_sheet_calc', class: 'calc_btn', data: {disable_with: 'Please Wait'} %>


.modal-footer
  # Development Button to submit form without validations
  -if Rails.env.development?
    = f.button :button, 'Submit - No Validations', type: 'submit', class: 'btn btn-success contract_submit_button', id: 'submit_form_no_validate', data: {disable_with: 'Please wait…'}, name: 'no_validate', value: 'no_validate'

  # Disabled fake submit, just so user knows they need to do something to submit
  = f.button :submit, type: 'button', readonly: true, id: 'fake_submit', data: {disable_with: 'Run Calculations to Submit'}, value: 'Run Calculations to Submit'

  # Hidden Submit button that is shown after JS method succeeds from top button
  = f.button :submit, class: 'btn btn-success contract_submit_button hidden', id: 'submit_form', data: {disable_with: 'Please wait…'}, value: 'Submit'

  # Cancel button to dismiss modal
  = link_to 'Cancel', '#', class: 'btn btn-danger', data: {dismiss: 'modal'}, type: 'button'

环境:

  • RubyMine:2018.1.1

  • 构建:#RM-181.4445.97,构建于 2018 年 4 月 11 日

  • JRE:1.8.0_152-release-1136-b27 x86_64

  • JVM:JetBrains s.r.o 的 OpenJDK 64 位服务器 VM

  • 红宝石:2.3.3

  • 导轨:5.0.0

  • macOS 10.13.4

【问题讨论】:

    标签: ruby-on-rails haml rubymine code-inspection


    【解决方案1】:

    在我的特定情况下,我们的项目在 haml 中有一个 500 多行的简单表单,会触发此警告。我试图调试它,但我认为它归结为我们的表单太大,RubyMine 无法解析此检查。它确实使得无法看到其他检查警告和错误。

    您可以在有问题的块之前添加它以在 RubyMine 中静音该警告: = # noinspection RubyScope

    您不一定必须将该指令提交到您的代码库。我不。我只是将它用作调试工具来查看任何其他警告或错误,然后在提交之前将其删除。

    【讨论】:

    • 是的,我知道 500 行的简单形式很疯狂。那是开发人员在表单中添加东西的七年。我无权要求将其重构为理智,我认为目前这也不可能,所以我使用我们现有的东西。
    • 这是有道理的。仅仅因为输入的剪切量,我们有一对超过 500 行。虽然它最近已经停止这样做,所以看起来他们已经修复了它。运行:RubyMine 2018.1.3 Build #RM-181.4892.67,于 2018 年 5 月 16 日构建
    【解决方案2】:

    我也对整个屏幕充满绿色波浪线感到恼火,因此我找到了一种方法来禁用此检查:

    • 单击突出显示的行并按 ⌥⏎。

    • 单击要禁用的检查旁边的箭头,然后选择禁用检查。

    https://www.jetbrains.com/help/ruby/disabling-and-enabling-inspections.html#disable-inspections

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-15
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多