草庐IT

Java:没有默认构造函数的类的newInstance

全部标签

ruby-on-rails - 在 Rails 应用程序中放置不适合任何地方的类的指南

我想知道是否有关于在Rails应用程序中放置非标准Ruby文件的最佳实践,那些不适合任何默认目录的文件(controllers/型号等)。我说的是Controller/模型等使用的类,但不是任何Rails基类的子类。包含从模型中提取的功能的类,以减少它们的体积。其中一些看起来像模型但不是AR模型,一些看起来更像“服务”,一些介于两者之间或其他。一些随机的例子:通过facebook等使用密码处理身份验证的“策略”类。封装参数的“XParams”对象或处理参数处理的“XCreator”对象,以执行一些复杂的操作,最终创建一些AR模型向外部API发出请求或封装这些请求和响应的类可以替代真实A

ruby - 为什么 Matz 选择在 Ruby 中默认设置可变字符串?

这是这个问题的反面:Whycan'tstringsbemutableinJavaand.NET?在Ruby中做出这个选择仅仅是因为操作(追加等)对可变字符串有效,还是有其他原因?(如果只是效率,那似乎很奇怪,因为Ruby的设计似乎并没有高度重视促进高效实现。) 最佳答案 如您所见,这符合Ruby的设计。不可变字符串比可变字符串更有效——更少的复制,因为字符串被重复使用——但让程序员的工作更加困难。将字符串视为可变的很直观——您可以将它们连接在一起。为了解决这个问题,Java默默地将两个字符串的连接(通过+)转换为StringBuff

ruby-on-rails - rbenv:在没有 gem 的情况下生存

TL;博士不要为gem烦恼;可以同时安装多个版本的gem。必要时,使用$gem-based-binary_version_args指定要执行的版本符号。使用bundleexec当您有指定版本的Gemfile时。geminstallrails-v3.2.13rails_3.2.13_newProject2cdProject2bundleexecrailsserver更新:2015-06-04我三年前写过这个问题。部分是基于错误的假设,部分情况自那时起发生了变化。感谢@indirect的原始答案,我想提请注意@kelvin的更新(较少投票)答案,总结在上面。我的错误假设:一次只能安装一个g

ruby-on-rails - 在 Rails 中,如何获取当前 URL(但没有路径)

如果我在一个URL中,例如http://domain.example/mysite/bla如何只请求没有路径的URL?比如http://domain.example 最佳答案 你可以用这个#=>https://domain.example:3000#=>https://domain.example从Rails3.2开始你也可以使用#=>https://domain.example:3000 关于ruby-on-rails-在Rails中,如何获取当前URL(但没有路径),我们在Stack

ruby-on-rails - 如何更改 Rails 3 Controller 中 View 文件的默认路径?

我有一个名为ProjectsController的Controller。默认情况下,它的操作在app/views/projects中查找View。我想更改所有方法的路径(index、show、new、edit等。.)在Controller中。例如:classProjectsController请注意,我并没有用render更改每个方法,而是为所有这些方法定义了一个默认路径。这可能吗?如果是,怎么办?谢谢! 最佳答案 参见ActionView::ViewPaths::ClassMethods#prepend_view_path.cla

ruby - 有没有办法从该实例内部为 Ruby 类的实例创建方法?

让classExample定义为:classExampledefinitialize(test='hey')self.class.send(:define_method,:say_hello,lambda{test})endend调用Example.new;Example.new我收到一个警告:方法已重新定义;丢弃旧的say_hello。我得出结论,这一定是因为它在实际类中定义了一个方法(从语法上看是有道理的)。当然,如果Example的多个实例在其方法中具有不同的值,那将是灾难性的。有没有办法从实例内部为类的实例创建方法? 最佳答案

ruby - 警告! PATH 没有设置好,一般是 shell 初始化文件引起的

每当我转到包含.rvmrc文件的文件夹时,都会出现警告:Warning!PATHisnotproperlysetup,'/home/me/.rvm/gems/ruby-2.0.0-p247/bin'isnotavailable,usuallythisiscausedbyshellinitializationfiles-checkthemfor'PATH=...'entries,tofixrun:'rvmuseruby-2.0.0-p247'.我做了rvmuseruby​​-2.0.0-p247,但警告仍然存在。注意:没有错误,我可以很好地运行我的应用程序,但警告非常烦人。有什么想法吗?

ruby - 在 Ruby 中,有没有办法使用类似 hash.each_with_index do |[k,v], i| 的方法?

否则就需要h={:a=>1,:b=>2.2}h.each_with_indexdo|pair,i|k=pair[0];v=pair[1]pk,v,iend并以这种方式设置k和v似乎有点笨拙。它可以更简单还是类似h.each_with_indexdo|[k,v],i|? 最佳答案 事实上,是的!使用括号:h={:a=>1,:b=>2.2}h.each_with_indexdo|(k,v),i|pk,v,iend 关于ruby-在Ruby中,有没有办法使用类似hash.each_with_i

ruby - 如何在没有 Rails 的情况下使用 RSpec?

在没有Rails的情况下使用RSpec在Ruby中执行TDD的过程是什么?我需要Gemfile吗?它只需要rspec吗?ruby1.9.3 最佳答案 过程如下:从控制台安装rspecgem:geminstallrspec然后创建一个包含以下内容的文件夹(我们将其命名为root):根目录/my_model.rbroot/spec/my_model_spec.rb#my_model.rbclassMyModeldefthe_truthtrueendend#spec/my_model_spec.rbrequire_relative'../

ruby - 从命令行调用 ruby​​ 函数

如何从命令行直接调用ruby​​函数?想象一下,我会有这个脚本test.rb:classTestClassdefself.test_function(some_var)puts"Igotthefollowingvariable:#{some_var}"endend如果此脚本是从命令行(rubytest.rb)运行的,则不会发生任何事情(如预期的那样)。是否有类似rubytest.rbTestClass.test_function('someTextString')的东西?我想得到以下输出:我得到了以下变量:someTextString。 最佳答案