Tag: 条件

干掉Ruby三元组

我经常遇到一种情况,我想做一些条件逻辑,然后返回一部分条件。 如何在不重复真或假表达式中的条件部分的情况下执行此操作? 例如: ClassName.method.blank? ? false : ClassName.method 有没有办法避免重复ClassName.method ? 这是一个现实世界的例子: PROFESSIONAL_ROLES.key(self.professional_role).nil? ? 948460516 : PROFESSIONAL_ROLES.key(self.professional_role)

导轨 – 在导轨中找到条件4

我最近将我的rails升级到Rails 4.1.6。 此查询用于工作: @user = User.find(:all, :conditions => { :name => ‘batman’ }) 现在我收到此错误消息: Couldn’t find all Users with ‘id’: (all, {:conditions=>{:name=>”batman”}}) (found 0 results, but was looking for 2) 当我检查日志时,我可以看到rails正在尝试执行完全不同的查询: User Load (0.4ms) SELECT “users”.* FROM “users” WHERE “users”.”id” IN (‘all’, ‘— :conditions: :name: batman ‘) 看起来,它试图让所有用户都拥有ID“all”和“{:conditions => {:name =>”batman“}}”。 请帮忙。 更新: 我背后真正的问题是我想要一个特定的用户并添加他的汽车,只有蓝色的汽车。 例如,这是我的查询,用户ID是20。 […]

Rails 3使用NOT NULL在.where条件之后排序

我有一个显示最快用户的排名: @users = User.find.sort { |a, b| b.finished_at a.created_at } 现在我要添加一些代码以防止因为finished_at beeing nil而导致错误,直到用户完成。 @users = User.find(:all, :conditions => “finished_at IS NOT NULL”).sort { |a, b| b.finished_at a.created_at } 但sort不起作用。 这种链接方法有缺陷吗? 并且find(:all, :conditions => “finished_at IS NOT NULL”) rails 3路还是过时的? 提前致谢

“条件字符串文字”是什么意思?

每当我尝试运行程序时,会弹出一个错误,说“条件字符串文字(第10行)”。 我究竟做错了什么? puts “Welcome to the best calculator there is. Would you like to (a) calculate the area of a geometric shape or (b) calculate the equation of a parabola? Please enter an ‘a’ or a ‘b’ to get started.” response = gets.chomp if response == “a” or “A” puts “ok.” elsif response == “b” […]

如果条件语句出现在表达式之前或之后,这是否重要?

对不起,如果这是一个愚蠢的问题,但我是一个C#家伙摸索着ruby的方式.. 在ruby中,我注意到很多人这样做: do_something(with params) if 1 = 1 这和之间有什么区别(甚至是轻微的): if 1 = 1 do_something(with params) 还是为了更清晰而写的是同一件事?

在Ruby中编写“匹配平衡括号”程序的更好方法

这个方法应该采用一个字符串并检测括号’(””””在字符串中是否与相应的(相对的)括号正确关闭)。 首先,是否有更优雅,更紧凑的方式来编写此位而不使用所有“或”s(||): split_array.each do |i| if (i == “{” || i == “(” || i == “[“) left.push(i) else (i == “}” || i == “)” || i == “]”) right.push(i) end end 我的第二个问题是,这段代码是否可怕(见下文)? 似乎我应该能够用更少的行来编写这个,但从逻辑上讲,我还没有提出另一个解决方案(但是。)代码适用于大多数测试,但是对于这个测试它返回false(参见所有的驱动程序测试) bottom):p valid_string?(“[(text){}]”)== true 任何批评都将不胜感激! (另外,如果有更好的部分发布,请告诉我)谢谢! def valid_string?(string) opposites = { “[” => “]”, “{” => “}”, “(” => “)”, “]” […]

Ruby:条件矩阵? 有多种情况的情况?

在ruby中,我想知道是否有办法做到以下几点: 我基本上有一个包含四种可能结果的矩阵: A is True, B is True A is True, B is False A is False, B is True A is False, B is False 我想以最干净的“ruby方式”为此写一个测试。 我希望能做类似的事情 case[A,B] when A && B then … when A && !B then … when !A && B then … when !A && !B then … end ……但那不起作用。 […]

如何在rails中添加条件where子句

我是一个铁杆新手,我正试图在带有rails的桌面上进行搜索,而我只是使用我的sql知识来做到这一点。 但这似乎不像铁路或ruby甚至…… 有没有更好的方法来做我正在做的事情? (基本上,只有在填充时才将日期参数传递给sql) def search(begin_date=nil, end_date=nil) subject = ” and created_at ” if !(begin_date.nil? || end_date.nil?) where_part = subject + “BETWEEN :begin_date AND :end_date” else if (begin_date.nil? && end_date.nil?) where_part = “” else if(begin_date.nil?) where_part = subject + ” = :begin_date” end end end end User.joins(places: {containers: {label: :user}}).where(“users.id= :user_id “+where_part, user_id: self.id, begin_date:begin_date, […]