我的问题很简单:
我是否必须使用Ruby on Rails在类上require 'csv'
?
如果我打开rails console
并尝试使用CSV gem它可以正常工作,但我是否必须在文件中执行此操作?
答案 0 :(得分:9)
CSV
library是ruby标准库的一部分;它不是宝石(即第三方图书馆)。
与所有标准库一样(与 core 库不同),ruby解释器不会自动加载UPDATE MyTable SET
barcode = CAST(location AS int) + 2406
WHERE category = 12
AND CAST(location AS int) > 1
AND CAST(location AS int) < 96
。是的,您的应用程序中的某处确实需要csv
:
require
在诸如rails应用程序之类的大型项目中,您可能会发现irb(main):001:0> CSV
NameError: uninitialized constant CSV
from (irb):1
from /Users/tomlord/.rbenv/versions/2.4.4/bin/irb:11:in `<main>'
irb(main):002:0> require 'csv'
=> true
irb(main):003:0> CSV
=> CSV
实际上已经加载了;也许在某个地方&#34;模糊&#34;就像在宝石中,或csv
或config/initializers/*
中的某个地方。
然而,依赖于加载的图书馆通常是一个坏主意&#34;无关&#34;像这样的地方;这样做可能会导致在更改时无意中破坏其他代码,或者在此处逐渐加载越来越多的库,即使不再需要某些代码。
所以简而言之:是的,我建议在使用config/application.rb
库的任何文件的顶部写require 'csv'
。或者,在一个较大的项目中,明确需要在许多地方加载和使用此库,可以考虑只在CSV
{ p>