标签: ruby

当referrer不可用时,正确地执行redirect_to:返回Ruby on Rails

我遇到了问题redirect_to :back.是的,这是推荐人.

我经常得到例外

(ActionController :: RedirectBackError)"在此操作的请求中未设置HTTP_REFERER,因此无法成功调用redirect_to:back.如果这是测试,请确保指定request.env [\"HTTP_REFERER \"]."

我意识到这是推荐人无法使用的结果.有没有办法,例如,可以在访问的最后一页访问每次访问时设置一个会话变量,当HTTP_REFERER不可用时,利用此会话变量重定向到?

ruby ruby-on-rails http

91
推荐指数
7
解决办法
7万
查看次数

如何检查URL是否有效

如何检查字符串是否是有效的URL?

例如:

http://hello.it => yes
http:||bra.ziz, => no
Run Code Online (Sandbox Code Playgroud)

如果这是一个有效的URL,我如何检查这是否与图像文件相关?

ruby

91
推荐指数
6
解决办法
6万
查看次数

如何在Ruby中优雅地重命名哈希中的所有键?

我有一个Ruby哈希:

ages = { "Bruce" => 32,
         "Clark" => 28
       }
Run Code Online (Sandbox Code Playgroud)

假设我有另一个替换名称的哈希,是否有一种优雅的方式来重命名所有键,以便我最终得到:

ages = { "Bruce Wayne" => 32,
         "Clark Kent" => 28
       }
Run Code Online (Sandbox Code Playgroud)

ruby hash key

91
推荐指数
5
解决办法
5万
查看次数

如何在Rails中打印出对象的内容以便于调试?

我想我正试图让PHP等价print_r()(打印人类可读); 目前原始产量是:

ActiveRecord::Relation:0x10355d1c0
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

ruby ruby-on-rails

91
推荐指数
5
解决办法
9万
查看次数

在Rails 3中将UTC转换为本地时间

我在Rails 3中转换UTC TimeTimeWithZone本地时间时遇到问题.

Say momentTimeUTC中的一些变量(例如moment = Time.now.utc).如何转换moment到我的时区,照顾DST(即使用EST/EDT)?

更确切地说,如果时间对应于美国东部夏令时间上午9点和"3月7日上午9点",如果时间是美国东部时间上周一上午9点​​,我打算打印出"3月14日星期一上午9点​​".

希望还有另一种方式吗?

编辑:我首先认为 "EDT"应该是一个公认的时区,但"EDT"不是一个实际的时区,更像是时区的状态.例如,要求没有任何意义Time.utc(2011,1,1).in_time_zone("EDT").这有点令人困惑,因为"EST" 一个实际的时区,在一些不使用夏令时的地方使用,并且是(UTC-5)一年.

ruby timezone ruby-on-rails activesupport ruby-on-rails-3

91
推荐指数
4
解决办法
10万
查看次数

如何在ActiveRecord模型中覆盖getter方法?

我正在尝试覆盖ActiveRecord模型的getter方法.我name在模型中调用了一个属性Category,我希望能够做到这样的事情:

def name
  name_trans || name
end
Run Code Online (Sandbox Code Playgroud)

如果name_transattribute不是nil,则返回它,否则返回name属性.我该怎么做?

这应该像这样正常调用:

@category.name
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails getter-setter rails-activerecord

91
推荐指数
4
解决办法
4万
查看次数

将目录添加到$ LOAD_PATH(Ruby)

我已经看到两种常用的技术,用于将当前正在执行的文件的目录添加到$ LOAD_PATH(或$ :).如果你不使用宝石,我会看到这样做的好处.显然,一个看起来比另一个看起来更冗长,但有理由与其中一个相提并论吗?

第一个,冗长的方法(可能是过度杀伤):

$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__)))
Run Code Online (Sandbox Code Playgroud)

而且更直接,快速和肮脏:

$:.unshift File.dirname(__FILE__)
Run Code Online (Sandbox Code Playgroud)

有理由和其他人一起去吗?

ruby rubygems load-path

90
推荐指数
5
解决办法
9万
查看次数

为什么Ruby比Python更适合Rails?

Python和Ruby通常被认为是具有相似表现力和力量的近亲(虽然具有完全不同的历史包袱).但有些人认为Rails框架的巨大成功确实与它所构建的语言有很大关系:Ruby本身.那么为什么Ruby比Python更适合这样的框架呢?

ruby python ruby-on-rails web-frameworks

90
推荐指数
9
解决办法
1万
查看次数

如果string为空,则返回一些默认值

我经常需要检查一些值是否为空,并写下"没有数据",如下所示:

@user.address.blank? ? "We don't know user's address" : @user.address
Run Code Online (Sandbox Code Playgroud)

当我们有大约20-30个字段,我们需要以这种方式处理它变得丑陋.

我所做的是使用or方法扩展String类

class String
  def or(what)
    self.strip.blank? ? what : self
  end
end

@user.address.or("We don't know user's address")
Run Code Online (Sandbox Code Playgroud)

现在它看起来更好了.但它仍然是原始的和粗糙的

如何解决我的问题会更好.也许最好扩展ActiveSupport class或使用辅助方法或mixins或其他任何东西.什么红宝石的思想,你的经验和最佳实践可以告诉我.

ruby ruby-on-rails

90
推荐指数
2
解决办法
6万
查看次数

ruby将数组转换为函数参数

说我有一个阵列.我希望将数组传递给函数.但是,该函数需要两个参数.有没有办法将数组转换为2个参数?例如:

a = [0,1,2,3,4]
b = [2,3]
a.slice(b)
Run Code Online (Sandbox Code Playgroud)

会在Ruby中产生错误.我需要输入a.slice(b[0],b[1])我正在寻找更优雅的东西,如a.slice(foo.bar(b)) 谢谢.

ruby arrays arguments function

90
推荐指数
2
解决办法
4万
查看次数