草庐IT

C++ 命名空间未声明但它是?

全部标签

ruby-on-rails - 为什么在私有(private)部分中声明委托(delegate)方法时是公开的?

我可以通过将声明放在中使attr_reader(以及相关的attr_writer和attr_accessor)方法私有(private)私有(private)部分:classFooprivateattr_reader:bendFoo.new.b#=>NoMethodError:privatemethod`b'calledfor#但是,Rails的delegate和Ruby标准库的def_delegate不要这样工作。这些委托(delegate)方法始终是公共(public)的。classFooattr_reader:bdefinitialize@b='b'endendrequire'f

ruby-on-rails - 使用 Rails 中的命名空间类防止 "warning: toplevel constant B referenced by A::B"

在自定义目录(例如:app/presenters/)中存储文件时,如何确保加载命名空间类?例如,如果您有:app/models/mega_menu.rbapp/presenters/catalog_presenter.rbapp/presenters/mega_menu/catalog_presenter.rbRails无法加载MegaMenu::CatalogPresenter:CatalogPresenter.new=>#MegaMenu::CatalogPresenter.new(irb):3:warning:toplevelconstantCatalogPresenterref

ruby-on-rails - 如何找到声明 ruby​​ 方法的位置?

我在activeRecord类上有一个ruby​​方法(停用!)。但是,我似乎找不到该方法的声明位置。这个项目有很多开发人员,所以它可能在任何地方。有一个停用!在一个不相关的类上,但它似乎没有被调用。任何想法如何找到一个实例的所有父类(superclass),或者在哪里找到停用的代码!? 最佳答案 第一个问题是:它是一个实际的方法吗?obj.method(:deactivate!)会引发错误吗?如果不支持,那么您可以使用Method#source_location(仅在Ruby1.9中,backports不支持):obj.metho

ruby - Ruby 中的命名命令行参数

有没有办法将命名参数传递给Ruby脚本?我理解ARGV传递参数的方式,但是这要求它们必须有一定的顺序。我想做的是传递命名参数,类似于其他命令行操作。例如:$rubysomeRubyScript.rb-aargumentA-bargumentB有什么想法吗? 最佳答案 有几个选项。OptionParser,在标准库中,是最受欢迎的之一。它可以完全满足您的需求,而且API也很不错。GetOptLong也在标准库中,它重新实现了POSIX风格的命令行。如果您想模拟Unix命令行应用程序,这一切都可以做到。AraT.Howard的Main是

ruby - 无法安装 Nokogiri gem,找不到 "libxml/parser.h",但它在那里,为什么?

我尝试安装Nokogiri,但我总是遇到编译错误:checkingforlibxml/parser.h...***extconf.rbfailed***但是,我已经安装了它和所有其他依赖项。我尝试像这样给安装程序提示:%>geminstallnokogiri----with-xml2-lib=/usr/lib/--with-xml2-include=/usr/include/libxml2/...checkingforlibxml/parser.h...***extconf.rbfailed***...但它仍然没有安装:%>find/usr/include/-name"parser.h

ruby - 何时在 Ruby 中使用关键字参数或命名参数

Ruby2.0.0支持关键字参数(KA),我想知道在纯Ruby的上下文中此功能的好处/用例是什么,特别是考虑到由于关键字匹配需要每次调用带有关键字参数的方法时都会完成。require'benchmark'deffoo(a:1,b:2,c:3)[a,b,c]enddefbar(a,b,c)[a,b,c]endnumber=1000000Benchmark.bm(4)do|bm|bm.report("foo"){number.times{foo(a:7,b:8,c:9)}}bm.report("bar"){number.times{bar(7,8,9)}}end#usersystemtot

ruby - 独立 ruby​​ 可执行文件中的命名空间 thor 命令

在命令行上调用thor命令时,方法按其模块/类结构命名,例如classApp将与命令一起运行thorapp:hello但是,如果你通过放置使它自己可执行App.start在底部你可以运行这样的命令:apphello有什么方法可以命名这些命令吗?这样你就可以调用,例如appsay:helloappsay:goodbye 最佳答案 另一种方法是使用寄存器:classCLI','Description.')endclassSubTask现在-假设您的可执行文件名为foo-您可以调用:$foosubbar在当前的thor版本(0.15.0.

ruby-on-rails - 如何命名类名包含数字的 Rails ruby​​ 文件?

Rails类名可以包含数字吗?例如:classTest123end这是一个有效的类吗?当我尝试加载该类时出现uninitializedconstantTest123错误。 最佳答案 我认为ArtemKalinchuk的最后评论应该成为这个用词不当的问题的答案。Ruby类名可以包含数字。Rails类必须在正确命名的文件中定义。如果我定义一个名为NewYear2012Controller的类:正确的文件名:new_year2012_controller.rb文件名不正确:new_year_2012_controller.rb(注意多余的

ruby-on-rails - Rails Controller 命名空间

在ruby​​onrails中使用命名空间的优点和缺点是什么。例如:我有很多像这样的ControllerCompanyLocationsCompanyXXXXCompanySportsCompanyActivitesCompanyQQQQQ我想将所有这些Controller放在公司文件夹中。Rails对此的最佳实践是什么? 最佳答案 您必须在您的controller/目录中创建一个子文件夹,并在您的views/目录中创建相同的子文件夹。你的Controller文件应该是这样的moduleCompanyclassSportsContr

ruby-on-rails - Rails 中的命名空间模型 : What's the state of the union?

从一开始,Rails就存在命名空间模型的问题。随着时间的推移,几乎每个人都放弃了使用它。包括我自己。随着Rails2.3的发布,我想了解最新情况。我想到的具体问题是:首先,可以出发了吗?表的命名,有什么规律可循?协会,如何以最不冗长的方式声明它们?如何命名外键列?自动请求,如果将模型文件放在与命名空间匹配的子目录中,它会起作用吗?或者,如何命名和放置文件?代,模型生成器是否成功并正确地处理命名空间?生成器,包含Controller的脚手架生成器怎么样?任何应该注意的不兼容性/怪癖? 最佳答案 我见过的关于这个问题的最好的文章来自St