带有可选参数的方法

有没有办法制作一个可以接受参数的方法,但也可以在没有参数的情况下调用,在这种情况下,参数被认为是如下所示? some_func(variable) some_func

‘在rbuf_fill中救援’:超时::错误(超时::错误)

相同的脚本不同错误。 这可能与我的网络而不是我的代码有关。 脚本如下: #!/usr/bin/env ruby -rubygems require File.join(File.dirname(__FILE__), ‘authentication’) require “csv” # faster_csv (ruby 1.9) lines = CSV.read(File.join(File.dirname(__FILE__), ‘karaoke.csv’)) # Exported an Excel file as CSV lines.slice!(0) # remove header line collection = StorageRoom::Collection.find(‘collection ID’) Song = collection.entry_class lines.each do |row| karaoke = Song.new(:artist => row[0], :song => row[1], :genre => row[2], :file => StorageRoom::File.new_with_filename(“#{karaoke.artist}#{karaoke.song}.mov”)) […]

使用Web套接字进行点对点文件共享

这是一个理论问题,但是,我需要为我的基于Web套接字的聊天应用程序添加文件共享function。 我可以使用像Amazon S3这样的服务通过发布文件的链接来上传要共享的文件,但这涉及上传可能已经可以通过本地网络访问的文件(例如,在同事之间共享文件) 。 所以我认为有可能通过现有的Web套接字连接以某种方式隧道上传/下载/传输。 但是,我对HTTP文件传输知之甚少,不知道如何实现它的下一步。 Web套接字是否存在限制,以防止这种情况发生? 我正在使用Ruby和EventMachine来实现我当前的Web套接字。 如果您能够提供高水平的概述以帮助我入门,那将非常感激。

Ruby win32 api接口

我需要在ruby中访问win32库的一些函数。 我在网上找到了关于Win32API类的非常稀少的信息,所以我在这里问。 我知道你可以这样做: function = Win32API.new(‘user32′,’MessageBox’,[‘L’, ‘P’, ‘P’, ‘L’],’I’) 但我似乎无法使用当前的win32绑定调用此函数: http://msdn.microsoft.com/en-us/library/bb762108%28VS.85%29.aspx 问题在于它的原型: UINT_PTR SHAppBarMessage( DWORD dwMessage, PAPPBARDATA pData ); 我将能够使用win32 ruby​​绑定来获取返回类型和第一个参数,但是,第二个参数需要一个结构。 结构的定义如下: typedef struct _AppBarData { DWORD cbSize; HWND hWnd; UINT uCallbackMessage; UINT uEdge; RECT rc; LPARAM lParam; } APPBARDATA, *PAPPBARDATA; 我尝试使用两者来定义这个api方法: api = Win32API.new(‘shell32′,’SHAppBarMessage’,[‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’],’I’) 和 api […]

map(&:name)在Ruby中意味着什么?

我在RailsCast中找到了这段代码: def tag_names @tag_names || tags.map(&:name).join(‘ ‘) end map(&:name)是什么意思?

使case / switch返回值的快捷方式

我很确定我看到有人像下面的代码一样执行快捷方式(这不起作用) return case guess when guess > @answer then :high when guess < @answer then :low else :correct end 有谁知道我指的诀窍?

使用Ruby符号

我第一次尝试学习Ruby是在2年前,现在我又开始了。 我停止的原因是因为我无法理解Symbol类。 现在我再次处于同一点,完全迷失在何时以及为何使用Symbols。 我已经阅读了Stackoverflow上的其他post以及Google搜索的几个解释。 但我还不明白。 首先,我认为符号只是一种创建某种“命名常量”的方法,而不必像Java那样经历相同的过程。 :all 而不是使用任意值创建常量public static final String ALL = 8; 但是当你在例如attr_accessor :first_name etc.使用它时没有多大意义attr_accessor :first_name etc.符号只是一个轻量级的String类吗? 我在理解我应该如何解释,何时以及如何在我自己的类和框架中使用符号时遇到问题。

为什么我的Ruby’ri’工具不会在命令提示符下返回结果?

可能重复: ruby 1.9 ri问题 当我尝试在命令提示符窗口中使用Ruby的ri工具来获取有关类,方法等的帮助时,它似乎总是失败。 例如,如果我键入: ri Array 我收到一条消息说: Updating class cache with 0 classes… Nothing known about Array 我正在使用安装了Ruby 1.9.1p243(2009-07-16修订版24175)[i386-mingw32]的Vista 64。 我该怎么做才能配置ri工作?

什么会给我一些像ruby readline的默认值?

如果我想在终端上输入一个已输入默认值的提示,我该怎么做? Ruby的标准Readline.readline()允许我设置历史记录但不填写默认值(据我所知,至少) 我想要这样的东西: 码: input = Readline.readline_with_default(‘>’, ‘default_text’) 安慰: > default_text|

使用has_many:通过和构建

我有三个模型,都是为了一个has_many:通过关系。 它们看起来像这样: class Company < ActiveRecord::Base has_many :company_users, dependent: :destroy has_many :users, through: :company_users accepts_nested_attributes_for :company_users, :users end class CompanyUser < ActiveRecord::Base self.table_name = :companies_users #this is because this was originally a habtm relationship belongs_to :company belongs_to :user end class User < ActiveRecord::Base # this is a devise model, if that matters has_many :company_users, dependent: […]