草庐IT

ruby-on-rails - 验证 : Only letters, 数字和 -

我想验证我的用户,因此他们只能在用户名中使用a-z和-。validates_format_of:username,:with=>/[a-z]/然而这条规则也允许空格._@Usernameshoulduseonlyletters,numbers,spaces,and.-_@please.有什么想法吗?最好的问候。阿斯比约恩莫雷尔 最佳答案 您可能需要说整个字符串必须匹配:validates_format_of:username,:with=>/^[-a-z]+$/如果您不想在开始/结束处匹配换行符,您可能还需要将^替换为\A并将$替换

ruby - ruby 中的 if(!x) 与 if(x==false)

我不明白下面的代码:ruby-1.9.1-p378>puts"nilisfalse"unlessnilnilisfalse=>nilruby-1.9.1-p378>puts"nilisn'tfalse"unlessnil==falsenilisn'tfalse=>nil在大多数语言中(至少是基于C的语言),if(!cond)和if(cond==false)的计算结果相同。这里发生了什么使情况并非如此?(我想知道为什么的细节,我明白是这样的。) 最佳答案 Ruby认为false和nil是仅有的两个“falsy”值,而其他所有值都是“t

ruby-on-rails - rails : Return only objects where all associations meet a condition

设置:Rails3.2.18、Postgres我有两个对象,例如,将它们称为Author和Article,具有以下设置:classAuthorhas_many:articles...endclassArticlebelongs_to:authorclass我正在尝试查找所有Author记录,其中所有相关的Article记录都是在一年前发布的。这段代码:Author.joins(:article).merge(Article.published_over_one_year_ago)...返回Author对象,其中至少一个关联的Article是在一年多以前发表的,但我只需要作者记录,其中所

Ruby - 退出 IF block

在IFblock中,我需要检查某些条件是否为真,如果为真,则退出block。#somethinglikethisif1==1returnifsome_object&&some_object.propertyputs'hello'end我该怎么做? 最佳答案 你不能像那样跳出if。您可以做的是向其添加一个子句:if(cond1)unless(cond2)#...endend如果您遇到逻辑嵌套过多的问题,并且需要一种更好地展平它的方法,也许您想做的是事先计算一个变量,然后仅在需要时才深入研究:will_do_stuff=cond1wil

ruby-on-rails - rails : How to test if an attribute of a class object is required in the model policy?

简单地说,我有一个模型用户,其中包含名称、电子邮件和评论作为属性。validates_presence_of:namevalidates_presence_of:email所以“姓名”和“电子邮件”是必需的,但不是“评论”。my_user=User.new我想找到一种方法来测试像my_user.name.required?或User.name.required?类似的东西。我的目标是创建一个表单,并根据该项目是否设置为“validates_presence_of”,将特定类动态添加到表单项目span或td我试图搜索它,但没有找到任何相关信息。有没有简单的方法可以做到这一点?谢谢

ruby-on-rails - 为 nil :NilClass only with RubyMine debugger on 获取未定义的方法 `+'

我的环境:Ubuntu14Ruby2.2.1Rails4.2新创建的Rails应用程序,包含1个操作:classFramesController无论我在哪里放置断点(在当前情况下返回0),我都会在浏览器中收到此错误:undefinedmethod`+'fornil:NilClass只有当我在RubyMine中使用“调试”选项并且到达断点时才会发生。当我在没有调试器/断点的情况下运行服务器时,一切正常。 最佳答案 我有同样的问题,只是从Gemfile中删除byebuggem修复了它group:development,:testdo#C

ruby - 2 if语句中的条件

我正在尝试检测电子邮件地址是否不是两个域之一,但我在使用ruby​​语法时遇到了一些问题。我目前有这个:if(!email_address.end_with?("@domain1.com")or!email_address.end_with?("@domain2.com"))#DoSomethingend这是条件的正确语法吗? 最佳答案 这里不是or,而是逻辑&&(和),因为您正试图找到匹配两者的字符串。if(!email_address.end_with?("@domain1.com")&&!email_address.end_w

ruby-on-rails - rails 4 : html_safe for only specific tags

我想允许几个特定的​​标签,比如()但让rails继续避开其他标签。Html_safe似乎不接受任何参数。执行此操作最顺利的方法是什么? 最佳答案 Thesanitizehelperwillhtmlencodealltagsandstripallattributesthataren’tspecificallyallowed.sanitize@article.body,:tags=>%w(br)链接到APIDocs. 关于ruby-on-rails-rails4:html_safeforo

ruby-on-rails - rails : Only allow admin user to create new users in Rails with Devise (No external modules)

目前,我的Users数据库有一个名为“admin”的列,其值为bool值,默认设置为false。我有一个管理员用户播种到数据库中。如何编写我的应用程序以便是管理员的用户可以创建新用户,而不是的用户不能?(此外,用户应该仅由管理员创建)似乎应该有一种简单的方法可以在不涉及使用某些外部模块的设计中做到这一点。然而,到目前为止,我还没有找到满意的答案。我更有可能标记仅是设计的解决方案。(一个简单的标准MVC/Rails解决方案加分)但是,如果真的有更好的方法来做到这一点而不涉及CanCan,我可能也接受它。注意:我已经搜索了一段时间,发现了其他几个与这个问题非常相似的stackoverflo

ruby-on-rails - 在 Ruby if 条件下使用正则表达式

我正在尝试将正则表达式用作Ruby(1.9.2)if语句中的条件,但即使正则表达式的计算结果为nil,它也会一直返回trueif(params[:test]=~/foo/)return"match"elsereturn"nomatch"end即使Rails.logger.info(params[:test])显示测试设置为"bar",上面的代码也会返回“匹配” 最佳答案 ifparams[:test]=~/foo/#Successfulmatchelse#Matchattemptfailedend适合我。调试params[:test