小编ber*_*kes的帖子

何时在Rails中使用时间戳?

Ruby on Rails的ORM有一个t.timestamps处理程序.它在表中添加(并填充和更新)created_at/updated_at行.

但是我可以想到一些不使用时间戳的原因:

  • 它们使用可能永远不会使用的信息使数据库混乱.
  • 它们在更新/插入项目时占用资源.

关于何时包含updated_at和created_at列以及何时将其删除,是否有良好的经验法则?

我的理由不使用它们有效吗?或者这可以被忽略,我应该简单地"只是添加它们,无论如何,你永远不知道什么时候你可能需要它们"

timestamp ruby-on-rails

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

在rspec测试中获取以字符串形式提供的URL或路径

对于确定侧边栏行为的控制器,我需要调用几个URL; 侧边栏将根据其显示的页面更改(ao).

describe SidebarController do
  before(:each) do
    @sidebar = SidebarController.new
  end
  it 'should return :jobseekers for root_path' do
    get(root_url)
    @sidebar.section(root_path).should eq :jobseekers
  end
end
Run Code Online (Sandbox Code Playgroud)

然而,这失败了 ActionController::RoutingError: No route matches {:controller=>"sidebar", :action=>"http://test.host/"}

我可以get将网址或路径作为字符串吗?是否有更智能的方法来设置request.数据,而不是GETting它?

rspec get

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

更简单的方法来添加XDEBUG_SESSION_START cookie /变量?

我用vimdebuggerxdebug走线槽PHP应用程序.

在firefox(或任何其他浏览器)中,我需要打开页面,调用XDEBUG_SESSION_START=1附加到它的URL,以告诉xdebugPHP插件启动调试服务器.

这工作正常,但它可以变得更简单吗?

是否有一些firefox插件允许我自动添加此会话?一些xdebug设置允许我完全绕过这个?或者一些vim-addon,脚本或技巧,允许我自动添加该参数调用firefox?

php vim xdebug

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

如何在Ruby中将类标记为Deprecated?

在Ruby中(甚至更多:Rails),很容易将方法标记为已弃用.

但是,如何将整个类标记为已弃用?我想在使用类时发出警告:

class BillingMethod
end

BillingMethod.new #=> DEPRECATION WARNING: the class BillingMethod is deprecated. Use PaymentMethod instead.
Run Code Online (Sandbox Code Playgroud)

或者当它在继承中使用时:

class Sofort < BillingMethod
end

Sofort.new #=> DEPRECATION WARNING: the class BillingMethod is deprecated. Use PaymentMethod instead. 
Run Code Online (Sandbox Code Playgroud)

或者,在嵌套类中使用时:

class BillingMethod::Sofort < BillingMethod
end

BillingMethod::Sofort.new #=> DEPRECATION WARNING: the class BillingMethod is deprecated. Use PaymentMethod instead. 
Run Code Online (Sandbox Code Playgroud)

我认为a- class_evalblock将成为发出这种警告的地方.这是正确的地方吗?还是有更好的方法?

ruby deprecation-warning

9
推荐指数
2
解决办法
2261
查看次数

如何启用格式化的Xdebug错误和跟踪

我不确定我什么时候或者我改变了什么,但突然xdebug不再呈现其格式化的堆栈跟踪.相反,它渲染stacktrtace没有任何HTML; 这是一个例子 ; 虽然我希望像这里的橙色表

我搜索了文档,但找不到任何对(un)设置它的设置或配置的引用.我做错了什么?

我的xdebug.ini(Ubuntu,所以/etc/php5/conf.d/xdebug.ini)很小:

zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so

xdebug.default_enable = 1
xdebug.auto_trace = 1

xdebug.remote_enable = 1
xdebug.remote_port = 9010
xdebug.remote_host = audrey

; xdebug.profiler_enable = 1

; Markup of var_dump
xdebug.overload_var_dump = 1
Run Code Online (Sandbox Code Playgroud)

xdebug

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

PHPs会不会遵循301重定向?

我们有一段遗留代码(ab)fopen()通过HTTP 使用对资源的调用:

@fopen('http://example.com')
Run Code Online (Sandbox Code Playgroud)

我们希望将example.com移至另一台主机,然后发送"301 Permanently Moved",但是,我们并不完全确定是否@fopen()会遵循这一规定.

初步测试表明它没有.但也许我会错过一些配置文章.

php sockets redirect http http-status-code-301

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

在Ruby中解析"X years and Y weeks ago"中的相似字符串

是否有一个通用解析器来解析"... before"字符串并将它们转换为DateTime对象?

可能的句子是:

  • 1年| @count年(和1周| @count周)之前
  • 1周| @count周(和1天| @count天)之前
  • 1天| @count天(和1小时| @count小时)前
  • 1小时| @count小时前(和1分钟| @count分钟)前
  • 1分钟| @count分钟前(和1秒| @count秒)前
  • 1秒| @count秒前

所以它要么是两个的组合(Foo和Bar之前),要么只有一个(Foo之前​​).它可以是单数或复数.

Ruby DateTime::parse()无法处理这个问题,也无法处理DateTime::strptime().

我希望有一个宝石或片段处理这个.

否则我将不得不创建自己的解析器,在这种情况下,非常欢迎指向如何创建自己的DateTime解析器的指针.

旁注:对于未来参考:这些是Drupals Format Interval生成的时间字符串

ruby datetime parsing

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

验证地理位置纬度和经度

我有一个Ruby on Rails的模型Camping#latitude#longitude属性.

这应该得到验证.必须进行验证,以便:

  • 值格式正确.例如48.8582和2.2945,但也有48.8和2.2.应该允许任何精度.我将它们存储为Float,是否需要或建议任何附加验证?
  • 它们在有效范围内(0-90).或者我应该允许负数,或高于和低于90的数字?

我不感兴趣在这一点上是否是一个实际有效的地址(海洋,北极,无论如何,只要它是地球上的有效点).

我正在使用geocoder gem,但是现在,输入只是一对lat/lon文本字段.地理编码器只是对这个问题感兴趣,因为它可能有实用方法(我找不到)来验证纬度/经度对.

validation geocoding ruby-on-rails

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

Sinatra通过rackup不喜欢内联模板

在致电sinatra本身时,$ ruby tubemp.rb有效.但通过rackup它没有.应用程序,以某种方式找不到内联模板.

#config.ru
require 'rubygems'
require 'sinatra'

set :environment, ENV['RACK_ENV'].to_sym
disable :run, :reload

require './tubemp.rb'

run Sinatra::Application
Run Code Online (Sandbox Code Playgroud)

返回的错误是:

No such file or directory - /home/ber/Documenten/ET_tubemp/code/views/index.erb:
Run Code Online (Sandbox Code Playgroud)

相关部分来自 tubemp.rb

get '/' do
  #...
  erb :index
end

__END__
@@ layout
<html>
...
<%= yield %>

@@ index
Welcome!
Run Code Online (Sandbox Code Playgroud)

不知何故,通过rackup,它希望视图存在于实际的视图文件中.我想当__END__包含左右时,机架无法处理令牌.

除了将模板移动到模板文件之外,我该如何处理?

templates sinatra rackup

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

如何从minitest规范生成HTML报告

是否有minitest的记者从最小的规范生成HTML?或者我错过了内置功能或标志?

Rspec有格式化程序来生成HTML文档,但我找不到最小的文档.

最后,我希望生成API(rdoc)文档,并附带描述我的模型和体系结构的测试.能够以某种方式在rdoc和minitest之间建立联系会更好.

formatter minitest

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