小编lul*_*ala的帖子

一个float子类,可以在Ruby中求值为false(模糊逻辑)

我需要一个可以代表概率的类.它可以表示为0到1之间的浮点数,低于0.5的任何值都应该计算为false.(或者它可以在1和-1之间,任何负数都是假的)

p = A.probability() 
puts p # will output 0.3
if(p)
  puts 'success'
else
  puts 'failure'
end
# will outputs 'failure'
Run Code Online (Sandbox Code Playgroud)

从这篇文章中可以看出它是可能的:每个对象都有一个布尔值...... Ruby中的大多数对象都有一个布尔值为true.只有两个对象的布尔值为false.只是我需要以某种方式设置这个布尔值.这可能吗?

ruby boolean fuzzy-logic

1
推荐指数
2
解决办法
218
查看次数

Rail + Compass精灵生成会产生错误的图像路径

在我的Rails 3.2.1应用程序中,我使用指南针(0.12.alpha.4)来创建精灵:

@import compass

@import "../images/category-icons/type/*.png"
@include all-type-sprites
//+all-type-sprites
Run Code Online (Sandbox Code Playgroud)

精灵图像是正确生成的,坐在app/assets/images/category-icons/type-sa69c4767de.png中

但是生成的样式表是错误的.它指向/assets/../images/category-icons/type-sa69c4767de.png.它只是附加assets到路径上.它在Rails之外工作,所以我认为它与资产管道有关.我应该为此配置什么才能正常工作?

ruby-on-rails asset-pipeline compass-sass

1
推荐指数
1
解决办法
2963
查看次数

太阳黑子相当于"IS NOT NULL"

我想搜索一个具有任何值的字段,主要是SQL IS NOT NULL.我试过了

with :fieldA
Run Code Online (Sandbox Code Playgroud)

认为这意味着"有价值".但它不起作用.什么是太阳黑子指定的方式IS NOT NULL

sunspot

1
推荐指数
1
解决办法
842
查看次数

为什么在if的块中不能使用在`if`条件中初始化的变量?

因此,通常在if条件中初始化变量,然后在if的块内使用该变量.

if a = foo()
   puts a
end
Run Code Online (Sandbox Code Playgroud)

但是,当我初始化一个变量并在同一个if块中使用它时,那个var将不会被认为是初始化的.例如:

def good?(item)
  puts "item is #{item.inspect}"
  true
end

if b = 52 && good?(b)
  puts "b is #{b.inspect}"
end
Run Code Online (Sandbox Code Playgroud)

运行上面的结果将是

item is nil
b is true
Run Code Online (Sandbox Code Playgroud)

为什么会这样?什么样的关键字与我搜索和研究的这种Ruby行为有关?

ruby

1
推荐指数
2
解决办法
70
查看次数

caches_action if子句中的proc如何执行

我有一个新手问题,我无法理解。if 条件中的 Proc 是如何为该caches_action方法执行的。

例如:

caches_action :show, :if=>Proc.new{|x| something}
Run Code Online (Sandbox Code Playgroud)

我不明白的是它是如何被调用的。我知道我可以执行定义为的过程

proc= Proc.new经过 proc.call

所以我不明白这是如何调用的。

其次,我如何通过条件

if logged_in?

如果有任何帮助,我将不胜感激

lambda caching ruby-on-rails

0
推荐指数
1
解决办法
1459
查看次数

使用 omniauth 重定向回当前页面并设计

我想在 oauth 登录后重定向回当前页面,我遵循了这个 Devise wiki并执行了以下操作:

  def after_sign_in_path_for(resource)
    sign_in_url = new_user_session_url
    if request.referer == sign_in_url
      super
    else
      request.env['omniauth.origin'] || stored_location_for(resource) || request.referer || root_path
    end
  end
Run Code Online (Sandbox Code Playgroud)

request.env['omniauth.origin']http://www.bubutravel.com/users/sign_in

stored_location_for(resource) 是零

request.refererhttp://openapi.qzone.qq.com/oauth/[omitted](我的提供者)

因此,在我的 omniauth 登录后,我再次被重定向到提供程序的 URL。

维基过时了吗?将 omniauth 登录重定向到当前页面的推荐方法是什么?

devise omniauth

0
推荐指数
1
解决办法
1089
查看次数