<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>JasoWu (Jason Wu)</title>
    <link>https://ruby-china.org/JasoWu</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>如何使用 VS Code 调试 Ruby on Rails 项目？</title>
      <description>&lt;p&gt;最近刚接手一个新项目，是一个 Ruby on Rails 的项目，现在卡在调试上了。
用 Oracle VM VirtualBox + Vagrant 搭建的虚拟环境做开发，编辑器选的是 VS Code，后端是 Ruby 的，前端是用 haml 做的，可是都不怎么熟悉。&lt;/p&gt;

&lt;p&gt;在 Google 上找了好久的资料，还是没运行起来，在 VS Code 的 Extensions 中也找不到 ruby-debug-ide 这个插件，后来只能用他的命令行 gem install ruby-debug-ide 安装了这个，但是好像还是不行。第一次启动调试的时候有一个配置文件叫 launch.json，我是这样配置的&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Debug Local File&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ruby&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;request&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;launch&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cwd&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;D:&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;Projects&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;HockeyApp_Local&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;HockeyApp&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;program&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;D:&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;Projects&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;HockeyApp_Local&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;HockeyApp&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;app&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;controllers&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;admin&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;users_controller.rb&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;有一个前端页面叫 form.html.haml，控制器是 users_controller.rb，我想调试这个页面，看看整个过程是怎么跑的，文件路径：&lt;/p&gt;

&lt;p&gt;D:\Projects\HockeyApp_Local\HockeyApp\app\controllers\admin\users_controller.rb
D:\Projects\HockeyApp_Local\HockeyApp\app\views\sessions_form.html.haml&lt;/p&gt;

&lt;p&gt;之后启动调试会报错：
Uncaught exception: uninitialized constant Admin
    D:/Projects/HockeyApp_Local/HockeyApp/app/controllers/admin/users_controller.rb:1:in &lt;code&gt;&amp;lt;top (required)&amp;gt;'
    C:/Ruby24-x64/bin/rdebug-ide:23:in&lt;/code&gt;load'
    C:/Ruby24-x64/bin/rdebug-ide:23:in `&lt;/p&gt;'&lt;p&gt;&lt;/p&gt;

&lt;p&gt;熟悉这种项目的大牛们都出来帮个忙看看吧&lt;/p&gt;</description>
      <author>JasoWu</author>
      <pubDate>Wed, 06 Dec 2017 16:49:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/34678</link>
      <guid>https://ruby-china.org/topics/34678</guid>
    </item>
  </channel>
</rss>
