Tag: 实现

ROR的不同实现

我正在制作一个非常简单的ROR网站。 class Product ‘Photo’, :order => ‘name’ has_one :random_photo_1, :class_name => ‘Photo’, :order => ‘RAND()’ def random_photo_2 Photo.find(:first, :conditions => { :product_id => self.id }, :order => ‘RAND()’) end end 在实现许多类ActiveRecord期间,我怀疑,我不明白random_photo_1实现random_photo_2方法之间的区别。 PS我很抱歉我的英语。

对Ruby的新实现Ruby的Ruby程序员有何意义?

SAP宣布推出Blue Ruby ,这是在ABAP虚拟机中运行的Ruby版本。 这似乎为Ruby语言提供了额外的可信度,但是除了SAP开发人员之外,它是否对Ruby社区的其他部分有任何适用性? 我只是想知道这可能有什么其他意义。 或许,可以聘请Ruby开发人员从事SAP项目的其他工作机会? Ruby程序员还有其他任何潜在的好处吗? 另外,我还不清楚:除了MRI和JRuby之外,还有多少不同的实现,为什么我作为Ruby程序员需要除MRI以外的任何实现? 我知道如果我想与Java库集成,我可能需要JRuby。 除了MRI或JRuby之外,还有其他任何时候我可能需要研究一个实现吗? 我注意到Blue Ruby已编译完成。 这是一个很大的好处,这将是Ruby的第一个编译版本吗? 对不起 – 可能有太多问题,但这是一个大问题,但我不确定为什么/如果确实如此。 非常感谢从比我更了解Ruby(和IT)的人那里获得一些反馈。

为什么分裂(”)试图(太)聪明?

我刚刚发现了String#split的以下奇怪行为: “a\tb c\nd”.split => [“a”, “b”, “c”, “d”] “a\tb c\nd”.split(‘ ‘) => [“a”, “b”, “c”, “d”] “a\tb c\nd”.split(/ /) => [“a\tb”, “c\nd”] 源 (string.c from 2.0.0)超过200行,包含如下所示的段落: /* L 5909 */ else if (rb_enc_asciicompat(enc2) == 1) { if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ‘ ‘){ split_type = awk; } } 之后,在awk split类型的代码中,实际参数甚至不再使用,并且与普通split相同。 有没有人觉得这有点被打破了? 这有充分的理由吗? 这样的“魔术”是否比大多数人在Ruby中想象的更频繁?

关于在Ruby on Rails中使用模块的建议

我正在使用Ruby on Rails 3,我知道在哪种情况下使用模块是好的。 我有一个控制器,包括我以这种方式使用的许多私有方法: class UsersController < ApplicationController def update params[:option1] = get_user_option1 params[:option2] = get_user_option2 if params[:option2] params[:saving_success] = update_user end … if params[:saving_success] flash[:notice] = another_method_1 else flash[:error] = another_method_2 end end private def update_user if params[:option1] == something @user.save end end def another_method_1 params[…] = … … end 正如您所看到的, 在私有方法中,我有ActiveRecords和params方法之类的东西 。 […]