Ruby:调用方法列表,直到返回true

是否有一种很好的方法可以在ruby中进行一系列方法调用UNTIL返回true? 这是我的第一个想法,但我想可能有更好的方法: if method_one elsif method_two elsif method_three else puts “none worked” end

布尔属性的命名约定

我想编写其他人也很容易理解的代码。 hide_email或email_hidden这样的布尔属性email_hidden具有约定风格?

如何使用ThinkingSphinx对多个模型进行地理搜索?

我有两个索引的模型用于搜索(用户和项目)。 我正在尝试跨模型进行地理搜索: ThinkingSphinx::Search.search(‘keywords’, :geo => [ degrees_to_radians(params[:lat].to_f), degrees_to_radians(params[:lon].to_f) ], ) 但我只得到一个错误: Sphinx Error: index item_core,item_delta,user_core,user_delta: unknown latitude attribute ” 单独搜索每个模型工作正常……但我不知道这里的问题是什么。 以下是索引: 用户索引: define_index do indexes [:first_name, :last_name], :as => :name indexes login indexes email indexes headline indexes description indexes business.name, :as => :business_name indexes [addresses.street_1, addresses.street_2, addresses.city, addresses.postal_code], :as => :address has created_at, :sortable => […]

盐如何在Rails的has_secure_password中工作

根据我从盐析中理解的更加安全的加密密码,我会生成一个随机数(盐)并将其与散列密码一起存储在用户记录中(例如)。我会将盐与明文连接起来密码,然后加密(哈希)。 产生的哈希将难以破解。 将重复此过程以validation密码。 看看has_secure_password和bcrypt_ruby (披露:我不是安全专家)我不知道如何做到这一点,因为用户记录中存储的唯一内容是哈希密码。 盐在哪里?

查找名称与字符串匹配的所有类

我想找到名称与字符串匹配的所有ruby类(忽略大小写)。 这意味着该字符串应该是类名的子字符串。 所以当你搜索’stri’时,你应该得到类String (以及其他)作为结果。 你知道一个方便而不是太低效的方法吗?

清理ruby中的奇怪编码

我现在正在玩couchdb。 我正在尝试将一些博客数据从redis(键值存储)迁移到couchdb(键值存储)。 看来我可能从不同的博客引擎中迁移了这些数据(每个人都有一个爱好:)),似乎有一些编码snafus。 我正在使用CouchREST从ruby访问CouchDB,我得到了这个: 问题似乎是对象的body_html部分: <Post:0x00000000e9ee18 @body_html="[…..]Wie Sie bereits wissen, m\xF6chte EUserv k\xFCnftig seine […] 这些应该是变形金刚(“möchte”和“künftig”)。 知道如何摆脱这些问题吗? 我在插入之前尝试使用ruby 1.9编码function或iconv进行了一些转换,但还没有运气:( 如果我尝试使用ruby 1.9的.encode()方法将这些东西转换为ISO-8859-1,则会发生这种情况(不同的文本,相同的问题): #

如何通过ransack gem搜索数组?

我正在使用ransack gem在rails应用程序中进行搜索。 我需要在User表中搜索email_ids数组。 在洗劫时提到这个问题,我按照步骤将其添加到初始化文件夹ransack.rb Ransack.configure do |config| { contained_within_array: :contained_within, contained_within_or_equals_array: :contained_within_or_equals, contains_array: :contains, contains_or_equals_array: :contains_or_equals, overlap_array: :overlap }.each do |rp, ap| config.add_predicate rp, arel_predicate: ap, wants_array: true end end 在rails控制台中,如果我喜欢这样: a = User.search(email_contains_array: [‘priti@gmail.com’]) 它产生这样的sql: “SELECT \”users\”.* FROM \”users\” WHERE \”users\”.\”deleted_at\” IS NULL AND (\”users\”.\”email\” >> ‘—\n- priti@gmail.com\n’)” 并给出如下错误: User Load (1.8ms) SELECT “users”.* […]

在ruby / rails中的html块中提取电子邮件地址

我正在创建一个解析器来防止来自tinyMCE的文本块中的垃圾邮件和收集电子邮件(所以它可能有也可能没有html标签) 我已经尝试了正则表达式,到目前为止这已成功: /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[AZ]{2,4}\b/i 问题是,我需要忽略mailto hrefs的所有电子邮件地址。 例如: test@mail.com 应该只返回第二封电子邮件添加。 为了获得我正在做的事情的背景,我正在反转块中的电子邮件地址,所以上面的例子看起来像这样: moc.liam@tset 我目前的正则表达式的问题是它也取代了href中的那个。 有没有办法让我用一个正则表达式做到这一点? 或者我必须检查一个然后另一个? 有没有办法让我这样做只是通过使用gsub或我必须使用一些nokogiri / hpricot magicks和什么来解析mailtos? 提前致谢! 这是我的参考btw: so.com/questions/504860/extract-email-addresses-from-a-block-of-text so.com/questions/1376149/regexp-for-extracting-a-mailto-address 我也用这个测试: http://rubular.com/ 编辑 这是我目前的帮助代码: def email_obfuscator(text) text.gsub(/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[AZ]{2,4}\b/i) { |m| m = “#{m.reverse}” } end 结果如下: <a target="_self" href="mailto:moc.liamg@tset”>moc.liamg@tset

Rails 4的Asset-Pipeline / Turbolinks对于大型应用程序的优缺点是什么?

我们正在开发一个相当广泛的应用程序。 该网站将有许多不同的部分,具有一些非常不同的用户界面要求和行为。 outlook未来,Rails 4将资产管道分离为一个独立的gem,以便我们可以选择是否包含它。 turbolinks可能会发生同样的事情。 这些天我一直在问自己但无法找到答案的问题是:我应该在项目中使用这些库吗? 我反思的主要问题是,一体化文件策略可能不起作用,我们将不得不在应用程序的不同部分使用文件包。 turbolink会如何对此作出反应,因为它必须假设所有js / css已经加载? 这种配置的优势是否克服了管道和turbolinks所隐含的代码复杂性? 我不指望是/否答案,只是对此事的一些看法。

therubyracer或nodejs,我应该使用哪个?

我正在关注新版Ubuntu 12.10上的ruby on rails入门指南 。 我要运行rake db:create但是我收到以下错误: 耙子流产了! 找不到JavaScript运行时。 有关可用运行时的列表,请参阅https://github.com/sstephenson/execjs 。 我一直在搜索,建议的解决方案(见下面的列表)是安装一些therubyracer或nodejs,但他们没有解释原因。 rake db:create – 找不到JavaScript运行时 Rails 3.1错误 – 找不到JavaScript运行时? http://datacodescotch.blogspot.com.au/2011/11/rails-31-spree-and-rake-aborted-could.html http://www.blog.railshouse.com/ 在我安装之前我想知道这些JavaScript运行时之间的差异以及为什么我会选择其中一个? 更新: 我刚刚阅读https://github.com/sstephenson/execjs (我知道我应该先读这个,对不起)在我看来execjs不是JavaScript运行时而且我已经拥有它…所以它归结为therubyracer和nodejs …请原谅我的无知,我已经修改了我的问题 除了Intrepidd的回答: 轨道上的ruby入门指南支持Intrepidd的答案。 请参见4.1“启动Web服务器”一节 ,其中说: Rails在一个注释行中为新应用添加了therubyracer gem到Gemfile,如果需要,你可以取消注释。 对于那里的导轨noob(像我一样),GemFile位于rails应用程序的根文件夹中。 在我的GemFile中取消注释该行后,我必须运行bundle install来安装therubyracer gem。