草庐IT

function_that_can_throw

全部标签

ruby-on-rails - 我得到 "found character that cannot start any token while scanning for the next token"

我已经在我的笔记本电脑上运行RubyonRails大约一个月了,但是当我想在这个实例中运行服务器时(它在几个小时前工作正常)我现在收到这条消息。请问如何让服务器再次运行?C:\Sites\LaunchPage>railssC:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/psych.rb:203:in`parse':():foundcharacterthatcannotstartanytokenwhilescanningforthenexttokenatline17column17(Psych::SyntaxError)fromC:/RailsIns

ruby - Ruby 中的 catch 和 throw 有什么用?

在大多数其他语言中,catch和throw语句的作用与Ruby中的begin、rescue和raise语句的作用相同。我知道您可以使用以下两个语句执行此操作:catch:donedoputs"I'mdone."end和ifsome_conditionthrow:doneend但这有什么用呢?谁能给我一个例子,说明Ruby中的catch和throw语句有什么用? 最佳答案 您可以使用它来跳出嵌套循环。INFINITY=1.0/0.0catch(:done)do1.upto(INFINITY)do|i|1.upto(INFINITY)d

ruby 轨道 : Can you put Ruby code in a YAML config file?

我想在我的amazon_s3.yml配置文件中做这样的事情:access_key_id:ENV['S3_KEY']secret_access_key:ENV['S3_SECRET']...但我知道这是行不通的。不确定这是否可能,但是您可以将Ruby代码放入YAML文件中吗? 最佳答案 通常不/直接。我这样说是因为为了使用ruby​​结果,你需要在加载文件之前先使用类似ERB的东西。在代码方面,您需要从以下内容开始:loaded_data=YAML.load_file("my-file.yml")甚至loaded_data=YAML.

ruby - "extend self"与 "module_function"相同吗?

extendself和module_function是实现它的两种ruby​​方法,因此您可以在模块上调用方法,如果包含该模块也可以调用它。这些方式的最终结果有什么不同吗? 最佳答案 module_function将给定的实例方法设为私有(private),然后复制并将它们作为公共(public)方法放入模块的元类中。extendself将所有实例方法添加到模块的单例中,保持它们的可见性不变。moduleMextendselfdefa;endprivatedefb;endendmoduleNdefc;endprivatedefd;e

ruby-on-rails - Rails 3.1 中的 Rails.cache 错误 - TypeError : can't dump hash with default proc

我在3.1.0.rc4(ruby1.9.2p180(2011-02-18修订版30909)[x86_64-darwin10])上遇到Rails.cache方法问题。该代码在2.3.12(ruby1.8.7(2011-02-18补丁级别334)[i686-linux],MBARI0x8770,RubyEnterpriseEdition2011.03)上的同一应用程序中运行良好,但在升级后开始返回错误。我还没弄明白为什么。当尝试缓存具有多个作用域的对象时似乎会发生错误。此外,无论有多少范围,使用lambda的任何范围都会失败。我曾因这些模式而失败:Rails.cache.fetch("ke

ruby-on-rails - rails : I can't call a function in a module in/lib - what am I doing wrong?

我有一个模块保存在/lib中作为test_functions.rb看起来像这样moduleTestFunctionsdefabcputs123endend进入ruby​​脚本/运行程序,我可以看到该模块正在自动加载(良好的配置约定等等......)>>TestFunctions.instance_methods=>["abc"]所以方法是已知的,让我们尝试调用它>>TestFunctions.abcNoMethodError:undefinedmethod`abc'forTestFunctions:Modulefrom(irb):3没有。这个怎么样?>>TestFunctions::a

ruby-on-rails - 用于 postgresql 的 Ruby on Rails : How can I edit database. yml?

Rails新应用。当前的database.yml是这样的:#SQLiteversion3.x#geminstallsqlite3##EnsuretheSQLite3gemisdefinedinyourGemfile#gem'sqlite3'development:adapter:sqlite3database:db/development.sqlite3pool:5timeout:5000#Warning:Thedatabasedefinedas"test"willbeerasedand#re-generatedfromyourdevelopmentdatabasewhenyourun

ruby module_function 与包含模块

在ruby​​中,我知道可以使用module_function在模块中混合使用模块函数,如此处所示。我知道这是多么有用,因此您可以在不混入模块的情况下使用该函数。moduleMyModuledefdo_somethingputs"helloworld"endmodule_function:do_somethingend我的问题是为什么您可能希望以这两种方式定义函数。为什么不拥有defMyModule.do_something或defdo_something在什么样的情况下,将函数混入或用作静态方法会有用? 最佳答案 想到Enumer

ruby - 警告 : Can't verify CSRF token authenticity in case of API development

我现在正在使用RubyonRails开发网络API。当Rails应用程序收到没有任何csrftoken的POST请求时,将出现以下错误消息。因为该应用没有View。WARNING:Can'tverifyCSRFtokenauthenticity所以我的问题是在这种情况下如何安全地逃避csrftoken检查?非常感谢您。 最佳答案 你可以通过添加skip_before_filter:verify_authenticity_token到你的Controller。这样,所有传入Controller的请求都会跳过:verify_authen

ruby-on-rails - 错误信息: Make sure that `gem install pg -v ' 0. 18. 1'` 绑定(bind)成功

我对ruby有疑问。我尝试了很多,但对我没有任何用处。当我想启动railsserver时,我得到这个错误信息:Anerroroccurredwhileinstallingpg(0.18.1),andBundlercannotcontinue.Makesurethat"geminstallpg-v'0.18.1"succeedsbeforebundling.这是我已经尝试过的:sudoinstallgembundleinstallbundleinstall--pathvendor/cachegeminstallpg-v'0.18.1'当我尝试geminstallpg-v'0.18.1'时