<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>yyyuezhi (yyyuezhi)</title>
    <link>https://ruby-china.org/yyyuezhi</link>
    <description>菜鸟成长中</description>
    <language>en-us</language>
    <item>
      <title>如何判断不同的 rails 版本应该用哪个版本的 gem</title>
      <description>&lt;p&gt;我用的 rails 版本是 6.0.5.1，gem 引用了 gem 'database_cleaner', '~&amp;gt; 1.5.3'，gem 'rspec-rails', '~&amp;gt; 5.0.0'，用 rspec 命令进行单元测试出现一个错误&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;DEPRECATION&lt;/span&gt; &lt;span class="no"&gt;WARNING&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;Initialization&lt;/span&gt; &lt;span class="n"&gt;autoloaded&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="nb"&gt;constants&lt;/span&gt; &lt;span class="no"&gt;ActionText&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;ContentHelper&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="no"&gt;ActionText&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;TagHelper&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;

&lt;span class="no"&gt;Being&lt;/span&gt; &lt;span class="n"&gt;able&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="n"&gt;this&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;deprecated&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="no"&gt;Autoloading&lt;/span&gt; &lt;span class="n"&gt;during&lt;/span&gt; &lt;span class="n"&gt;initialization&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;going&lt;/span&gt;
&lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;be&lt;/span&gt; &lt;span class="n"&gt;an&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="n"&gt;condition&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;future&lt;/span&gt; &lt;span class="n"&gt;versions&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;

&lt;span class="no"&gt;Reloading&lt;/span&gt; &lt;span class="n"&gt;does&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;reboot&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;application&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;therefore&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt; &lt;span class="n"&gt;executed&lt;/span&gt; &lt;span class="n"&gt;during&lt;/span&gt;
&lt;span class="n"&gt;initialization&lt;/span&gt; &lt;span class="n"&gt;does&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;run&lt;/span&gt; &lt;span class="n"&gt;again&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="no"&gt;So&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;reload&lt;/span&gt; &lt;span class="no"&gt;ActionText&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;ContentHelper&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;example&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;expected&lt;/span&gt; &lt;span class="n"&gt;changes&lt;/span&gt; &lt;span class="n"&gt;won&lt;/span&gt;&lt;span class="s1"&gt;'t be reflected in that stale Module object.

These autoloaded constants have been unloaded.

Please, check the "Autoloading and Reloading Constants" guide for solutions.
 (called from &amp;lt;top (required)&amp;gt; at /home/henry/projects/master_actions/config/environment.rb:5)

An error occurred in a `before(:suite)` hook.
Failure/Error: DatabaseCleaner.clean_with(:truncation)

NoMethodError:
  undefined method `schema_migrations_table_name'&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Migrator&lt;/span&gt;&lt;span class="ss"&gt;:Class&lt;/span&gt;
&lt;span class="c1"&gt;# /usr/share/rvm/gems/ruby-2.7.0/gems/database_cleaner-1.5.3/lib/database_cleaner/active_record/truncation.rb:260:in `migration_storage_names'&lt;/span&gt;
&lt;span class="c1"&gt;# /usr/share/rvm/gems/ruby-2.7.0/gems/database_cleaner-1.5.3/lib/database_cleaner/generic/truncation.rb:14:in `initialize'&lt;/span&gt;
&lt;span class="c1"&gt;# /usr/share/rvm/gems/ruby-2.7.0/gems/database_cleaner-1.5.3/lib/database_cleaner/base.rb:39:in `new'&lt;/span&gt;
&lt;span class="c1"&gt;# /usr/share/rvm/gems/ruby-2.7.0/gems/database_cleaner-1.5.3/lib/database_cleaner/base.rb:39:in `create_strategy'&lt;/span&gt;
&lt;span class="c1"&gt;# /usr/share/rvm/gems/ruby-2.7.0/gems/database_cleaner-1.5.3/lib/database_cleaner/base.rb:43:in `clean_with'&lt;/span&gt;
&lt;span class="c1"&gt;# /usr/share/rvm/gems/ruby-2.7.0/gems/database_cleaner-1.5.3/lib/database_cleaner/configuration.rb:91:in `block in clean_with'&lt;/span&gt;
&lt;span class="c1"&gt;# /usr/share/rvm/gems/ruby-2.7.0/gems/database_cleaner-1.5.3/lib/database_cleaner/configuration.rb:91:in `each'&lt;/span&gt;
&lt;span class="c1"&gt;# /usr/share/rvm/gems/ruby-2.7.0/gems/database_cleaner-1.5.3/lib/database_cleaner/configuration.rb:91:in `clean_with'&lt;/span&gt;
&lt;span class="c1"&gt;# ./spec/spec_helper.rb:50:in `block (2 levels) in &amp;lt;top (required)&amp;gt;'&lt;/span&gt;

&lt;span class="no"&gt;Finished&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="mf"&gt;0.02272&lt;/span&gt; &lt;span class="n"&gt;seconds&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;files&lt;/span&gt; &lt;span class="n"&gt;took&lt;/span&gt; &lt;span class="mf"&gt;1.25&lt;/span&gt; &lt;span class="n"&gt;seconds&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="nb"&gt;load&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="n"&gt;examples&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="n"&gt;failures&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="n"&gt;occurred&lt;/span&gt; &lt;span class="n"&gt;outside&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;examples&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查了一下，好像是 database_cleaner 的版本不对。那么我如何判断某个版本的 rails 该用哪个版本的 gem 呢？&lt;/p&gt;</description>
      <author>yyyuezhi</author>
      <pubDate>Tue, 12 Sep 2023 15:52:08 +0800</pubDate>
      <link>https://ruby-china.org/topics/43325</link>
      <guid>https://ruby-china.org/topics/43325</guid>
    </item>
    <item>
      <title>关于自动加载：require_dependencies 的问题</title>
      <description>&lt;p&gt;我有一个 rails 应用 api，里面的 model 中的某个.rb 文件中用到了一个方法 DatabaseName：：TableName.find_sth，find_sth 这个方法并没有定义在 api 这个包里，而是定义在另一个包——common 里，但是 api 中并没有 require/include 这个包。api 中有两处与 common 包相关的地方，一个是 gem“common”，但经过测试，并不是 gem 了这个包 api 就能认识 common 中的方法 (以及数据库名或表名)；另一个是在 api\config\initializers\中的一个文件里有一句——Common：：Projects.require_dependencies(:api)
我感觉这里是能说明为什么 api 能认识 common 中的方法，但是我还是不懂是怎么实现的，而且 require_dependencies 这个方法也定义在 common 中，这不是一个官方的方法吗？Common：：Projects.require_dependencies(:api) 看起来也是直接用了 Common 这个包......
求大神解惑&lt;img title=":bow:" alt="🙇" src="https://twemoji.ruby-china.com/2/svg/1f647.svg" class="twemoji"&gt; &lt;img title=":bow:" alt="🙇" src="https://twemoji.ruby-china.com/2/svg/1f647.svg" class="twemoji"&gt; &lt;img title=":bow:" alt="🙇" src="https://twemoji.ruby-china.com/2/svg/1f647.svg" class="twemoji"&gt; &lt;/p&gt;</description>
      <author>yyyuezhi</author>
      <pubDate>Wed, 18 May 2022 11:25:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/42402</link>
      <guid>https://ruby-china.org/topics/42402</guid>
    </item>
  </channel>
</rss>
