标签: ruby

如何用红宝石安全地替换所有带有下划线的空格?

这适用于任何包含空格的字符串

str.downcase.tr!(" ", "_")
Run Code Online (Sandbox Code Playgroud)

但是没有空格的字符串会被删除

所以"新学校"会变成"new_school",但"颜色"会变成"",什么都没有!

ruby ruby-on-rails ruby-on-rails-3

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

寻找在Ruby on Rails中构建安全REST API的建议

我正在开始为我正在开发的项目构建REST API,这让我对使用RoR构建API的最佳方法进行了一些研究.我很快就发现,默认情况下,模型对世界开放,只需在URL末尾添加".xml"并传递适当的参数即可通过URL调用.

那么下一个问题来了.如何保护我的应用以防止未经授权的更改?在做一些研究时,我发现了几篇文章attr_accessible,attr_protected以及如何使用它们.我发现的特定网址是在07年5月(这里)发布的.

和ruby一样,我确信自那时起事情已经发生了变化.所以我的问题是,这仍然是在RoR中保护REST API的最佳方法吗?

如果不是你在"新项目"或"现有项目"情景中建议什么?

ruby security rest ruby-on-rails asp.net-web-api

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

时间差以小时计

我试图获得两个不同时间实例的小时差异.我从DB获取这些值作为:datetime列

如何在忽略或舍入分钟的同时将其包括在计算中的月份和年份?这只能手动完成还是有功能吗?

ruby time

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

什么时候Ruby实例变量设置?

class Hello
@hello = "hello"
    def display
        puts @hello
    end
end

h = Hello.new
h.display
Run Code Online (Sandbox Code Playgroud)

我创建了上面的课程.它不打印任何东西.我认为在类声明期间设置了实例变量@hello.但是当我调用display方法时输出为'nil'.这样做的正确方法是什么?

ruby syntax instance-variables

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

Rails Flash消息仍然是两页加载

我在Rails应用程序中使用闪存通知,使用以下代码:

flash[:notice] = "Sorry, we weren't able to log you in with those details."
render :action => :new
Run Code Online (Sandbox Code Playgroud)

Flash消息在"新"操作上按预期呈现,但随后它也会显示用户访问的下一页(无论可能是什么).它应该只显示一次,但有些东西会让它坚持下去.

ruby ruby-on-rails

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

Ruby疯狂:Class vs Object?

我刚开始玩JRuby.这是我的第一篇红宝石帖子.我很难理解Ruby中的类和对象.它并不意味着像其他面向对象的laguages中的类和对象.举个例子

Class.is_a? Object
Run Code Online (Sandbox Code Playgroud)

返回true

Object.is_a? Object
Run Code Online (Sandbox Code Playgroud)

也是.

所以class&Object都是对象

这是另一个

Class.is_a? Class
Run Code Online (Sandbox Code Playgroud)

返回true

Object.is_a? Class
Run Code Online (Sandbox Code Playgroud)

也是.

等等,我还没完成

 Object.instance_of? Class
 Class.instance_of? Class
Run Code Online (Sandbox Code Playgroud)

两者都是真的

 Object.instance_of? Object
 Class.instance_of? Object
Run Code Online (Sandbox Code Playgroud)

两者都是假的.对,没有什么可以是对象的实例.

 Class.kind_of? Class
 Object.kind_of? Class
Run Code Online (Sandbox Code Playgroud)

两者都是真的

 Class.kind_of? Object
 Object.kind_of? Object
Run Code Online (Sandbox Code Playgroud)

两者都是真的

所以两者完全相同,那为什么我们都有这两个.

经过一番挖掘,我写了这个简单的方法来返回两者支持的方法列表

irb(main):054:0> def print_methods(obj)
irb(main):055:1>    obj.methods.each do |mm|
irb(main):056:2*        puts mm
irb(main):057:2>    end
irb(main):058:1> end
Run Code Online (Sandbox Code Playgroud)

print_methods(Object)和print_methods(Class)之间只有方法差异

     Nesting
Run Code Online (Sandbox Code Playgroud)

如果嵌套意味着继承,Is Object类似于密封类?

有人可以澄清一下这是什么吗?

更新:给Edds评论

有趣的是,我在方法列表中看到了很多不同之处

c=Class.new
print_methods(c)
Run Code Online (Sandbox Code Playgroud)

&

o=Object.new
print_methods(o)
Run Code Online (Sandbox Code Playgroud)

现在我理解一个类的实例实际上是一个类实例(而这个类实例实际上是一个Object)而不是一个对象实例.甚至这个实例也允许我跨越另一个实例

  xx = c.new //works - c is …
Run Code Online (Sandbox Code Playgroud)

ruby class object

65
推荐指数
2
解决办法
9496
查看次数

如何在Ruby中创建一个for-integer循环?

我的视图中有一个变量"x".我需要显示一些代码"x"次.

我基本上想要设置一个这样的循环:

for i = 1 to x
  do something on (i)
end
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

ruby for-loop

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

在ruby中转义字符串中的单引号和双引号?

如何在字符串中转义单引号和双引号?

我想一起逃避单引号和双引号.我知道如何单独传递它们但不知道如何传递它们.

例如: str = "ruby 'on rails" " = ruby 'on rails"

ruby escaping

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

在Rails应用程序中查找未使用的代码

如何找到生产中正在运行的代码?

该应用程序经过了充分测试,但有很多测试可以测试未使用的代码.因此,他们在运行测试时得到报道......我想重构和清理这个烂摊子,它不断浪费我的时间.我有很多背景工作,这就是为什么我想要制作环境来指导我.在heroku运行我可以旋转dynos以补偿探查器对性能的影响.

相关问题如何在Ruby应用程序中找到未使用的方法?没有用.

额外奖励:用于显示运行代码行的频率的指标.不知道为什么我想要它,但我做到了!:)

ruby refactoring code-coverage ruby-on-rails

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

65
推荐指数
2
解决办法
3391
查看次数