这个Ruby风格指南告诉我们更好地使用self.method_name
而不是class method_name
.但为什么?
class TestClass
# bad
class << self
def first_method
# body omitted
end
def second_method_etc
# body omitted
end
end
# good
def self.first_method
# body omitted
end
def self.second_method_etc
# body omitted
end
end
Run Code Online (Sandbox Code Playgroud)
有性能问题吗?
这些是2个简单的模型:
class Post < ActiveRecord::Base
has_one :asset, :dependent => :destroy
validates :asset, presence: true
end
class Asset < ActiveRecord::Base
belongs_to :post
end
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建这样的工厂:
factory :post do
# fields...
asset { FactoryGirl.create(:asset) }
end
factory :asset do
# fields...
post
end
Run Code Online (Sandbox Code Playgroud)
但是,运行规范它会进入一个循环.
我也试过这个:
factory :post do
# fields...
before(:create) do |post, evaluator|
FactoryGirl.create_list(:asset, 1, post: post)
end
end
Run Code Online (Sandbox Code Playgroud)
但最终在"验证失败:资产不能空白".
我如何表达我的情况?
我正在尝试缩放已经绘制到画布中的图像.这是代码:
var canvas = document.getElementById('splash-container');
var context = canvas.getContext('2d');
var imageObj = new Image();
imageObj.onload = function() {
// draw image at its original size
context.drawImage(imageObj, 0, 0);
};
imageObj.src = 'images/mine.jpeg';
// Now let's scale the image.
// something like...
imageObj.scale(0.3, 0.3);
Run Code Online (Sandbox Code Playgroud)
我应该怎么做?
我有这个项目模型:
class Project < ActiveRecord::Base
validates :status, :inclusion => { :in => ['active', 'closed'] }
validates :title,
:presence => true,
:length => { :in => 4..30 }
before_save :set_default_status_if_not_specified
private
def set_default_status_if_not_specified
self.status = 'active' if self.status.blank?
end
end
Run Code Online (Sandbox Code Playgroud)
如果我创建一个这样的新对象:
Project.create!(:title => 'Test 2', :pm_id => 1)
Run Code Online (Sandbox Code Playgroud)
我收到这些错误:验证失败:状态未包含在列表中 但是状态字段应该在保存之前填写.
我正在寻找RSpec发生器的完整列表,以便轻松生成控制器,模型,帮助器等的规格.我发现的唯一一个是:
rails g integration_test 名称
将spec保存在spec/requests文件夹中.
我在Openshift上有一个可扩展的PHP 5.4盒式磁带,带有一个青铜帐户.这是一个wordpress博客,我已经使用它直到2周前.
今天,我回来参观了它,它说:
503服务不可用.没有服务器可用于处理此请求.
为了检查代理状态,我访问了这个链接http://myapp-mydomain.rhcloud.com/haproxy-status,我看到了这个:
好像DOWN.
使用rhc tail检查日志我看到这一行:
==> app-root/logs/haproxy.log <==
[ALERT] 077/194638 (138628) : proxy 'express' has no server available!
[WARNING] 086/161237 (138628) : Server express/local-gear is DOWN for maintenance.
[WARNING] 086/161239 (33522) : config : log format ignored for proxy 'stats' since it has no log address.
[WARNING] 086/161239 (33522) : config : log format ignored for proxy 'express' since it has no log address.
[WARNING] 086/161239 (33522) : Server express/local-gear is DOWN, reason: Layer7 wrong …
Run Code Online (Sandbox Code Playgroud) 我想在预先配置的数字范围内验证输入字段.仅允许从1到24的数字.
我能怎么做?
使用这样的自定义解决方案:
$('.field').keypress(function(event) {
var val = parseInt($(this).val()) + HERE_I_SHOULD_SUM_THE_NEWLY_ADDED_DIGIT;
if(val < 1 || val > 24) event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
我能够检索当前的输入值.如何添加新添加的数字?
我有多个Web服务,可以在数据库表中写入数据.对于特定字段,我想自动将大写字符串转换为小写字符串.是否有任何mysql函数执行此任务?
假设这是表:
id | name | language
Run Code Online (Sandbox Code Playgroud)
有时,在语言字段中,Web服务会写一个大写字符串(IT).我想直接在MySQL内部将其转换为小写字符串("it").
谢谢
在Ruby类中,我想解析并获取保存在数据库中的某些文本中的图像的第一次出现.特别是,我想收集所有src
属性.
Nokogiri会帮助我吗?我该怎么做?
EDIT1:
我写:
// database stuff...
doc = Nokogiri::HTML(my_html)
doc.search('img') do |img_tag|
puts img_tag
end
Run Code Online (Sandbox Code Playgroud)
但是我无法收集图像标签.
EDIT2:
我找到了解决方案:
doc.search('img').each do |img_tag|
puts img_tag.attributes['src']
end
Run Code Online (Sandbox Code Playgroud) 我不明白为什么会这样:
s = "000301"
"%06d" % s ====> "000193"
sprintf("%06d", s) ====> "000193"
Run Code Online (Sandbox Code Playgroud)