小编Mic*_*art的帖子

使用Ruby的类<< self vs self.method:什么更好?

这个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)

有性能问题吗?

ruby

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

FactoryGirl,has_one关联和验证失败

这些是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)

但最终在"验证失败:资产不能空白".

我如何表达我的情况?

rspec ruby-on-rails factory-bot

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

HTML5画布,绘制后缩放图像

我正在尝试缩放已经绘制到画布中的图像.这是代码:

      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)

我应该怎么做?

html5 canvas image scale

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

before_save不使用Rails 3

我有这个项目模型:

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)

我收到这些错误:验证失败:状态未包含在列表中 但是状态字段应该在保存之前填写.

ruby-on-rails

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

RSpec发电机列表

我正在寻找RSpec发生器的完整列表,以便轻松生成控制器,模型,帮助器等的规格.我发现的唯一一个是:

rails g integration_test 名称

将spec保存在spec/requests文件夹中.

rspec ruby-on-rails

7
推荐指数
2
解决办法
3103
查看次数

Openshift,503服务不可用.没有服务器可用于处理此请求

我在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)

php openshift openshift-cartridge

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

Javascript/Jquery:使用数字范围验证输入

我想在预先配置的数字范围内验证输入字段.仅允许从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)

我能够检索当前的输入值.如何添加新添加的数字?

javascript jquery

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

MySQL自动转换为小写

我有多个Web服务,可以在数据库表中写入数据.对于特定字段,我想自动将大写字符串转换为小写字符串.是否有任何mysql函数执行此任务?

假设这是表:

id | name | language
Run Code Online (Sandbox Code Playgroud)

有时,在语言字段中,Web服务会写一个大写字符串(IT).我想直接在MySQL内部将其转换为小写字符串("it").

谢谢

mysql

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

Ruby,从文本中获取第一个图像

在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)

ruby parsing ruby-on-rails

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

Ruby:已经格式化字符串的前导零

我不明白为什么会这样:

s = "000301"
"%06d" % s             ====> "000193"
sprintf("%06d", s)     ====> "000193"
Run Code Online (Sandbox Code Playgroud)

ruby

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