Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Gemfile中相同gem的不同版本-可能吗?_Ruby On Rails_Ruby_Gem - Fatal编程技术网

Ruby on rails Gemfile中相同gem的不同版本-可能吗?

Ruby on rails Gemfile中相同gem的不同版本-可能吗?,ruby-on-rails,ruby,gem,Ruby On Rails,Ruby,Gem,我有两个宝石: gem 'A' gem 'B' gem 'C' gem 'X' gems A、B和C有一个依赖项,即gem X。gem X恰好在Gemfile中,而不是在Gemfile.lock中,因为它本身在整个应用程序中使用 然而,A和B(事实上还有其他gem)需要X的版本1,而C和只有C需要版本2。我如何让他们使用不同版本的X?这可能行不通。无论如何您如何期望您的A&B gem使用X gem的版本1,而C使用版本2 另一件事是,如果版本1正在定义一个类,而版本2正在定义同一个类,但是覆

我有两个宝石:

gem 'A'
gem 'B'
gem 'C'

gem 'X'
gems A、B和C有一个依赖项,即gem X。gem X恰好在Gemfile中,而不是在Gemfile.lock中,因为它本身在整个应用程序中使用


然而,A和B(事实上还有其他gem)需要X的版本1,而C和只有C需要版本2。我如何让他们使用不同版本的X?

这可能行不通。无论如何您如何期望您的A&B gem使用X gem的版本1,而C使用版本2


另一件事是,如果版本1正在定义一个类,而版本2正在定义同一个类,但是覆盖了v1方法,那么“最终类代码”将取决于加载顺序。

否,在bundler中不允许它。

实际上,您可以在ruby文件中指定调用
gem'X',1'
,但强烈建议不要使用这种方法,原因引入了如上所述的冲突