小编lee*_*our的帖子

将\n替换为Sublime Text中的实际新行

如何\n在Sublime Text中替换真正的编辑器内显示的新行,这样:

foo\nbar
Run Code Online (Sandbox Code Playgroud)

变为:

foo
bar
Run Code Online (Sandbox Code Playgroud)

当我在其中查看文件时,在编辑器中.

sublimetext sublimetext2 sublimetext3

407
推荐指数
11
解决办法
27万
查看次数

正则表达式用小写字母替换大写

我正在尝试使用正则表达式将大写字母替换为相应的小写字母.以便

EarTH:   1,
MerCury: 0.2408467,
venuS:   0.61519726,
Run Code Online (Sandbox Code Playgroud)

earth:   1,
mercury: 0.2408467,
venus:   0.61519726,
Run Code Online (Sandbox Code Playgroud)

在Sublime Text中.如何只在包含小写和大写字母的单词中包含字母?这样它影响venUs而不影响VENUS.

sublimetext sublimetext2 sublimetext3

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

将范围传递给forEach

我正在尝试使用回调方法addToCount而不是匿名函数forEach.但我无法访问this.count它(返回undefined).

function Words(sentence) {
  this.sentence = sentence;
  this.count = {};
  this.countWords();
}

Words.prototype = {
  countWords: function() {
    var words = this.sentence.split(/\W+/);
    words.forEach(this.addToCount);
  },
  addToCount: function(word) {
    word = word.toLowerCase();
    if (word == '') return;
    if (word in this.count)
      this.count[word] += 1;
    else
      this.count[word] = 1;
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为问题在于范围.如何传递thisaddToCount或有任何其他方式,使其工作?

javascript

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

如何检查文件是否为空?

我有一个文本文件例如.检查Ruby文件为空的最佳方法是什么? File.size('test.rb') == 0看起来很难看.

ruby

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

注册验证时,Silex转换将停止工作

我用YAML注册了TranslationServiceProvider,它运行正常:

$app->register(new TranslationServiceProvider(), array(
    'locale_fallback' => 'ru',
));

$app['translator'] = $app->share($app->extend('translator', function($translator, $app) {
    $translator->addLoader('yaml', new YamlFileLoader());
    $translator->addResource('yaml', CONTENT_PATH . '/locales/en.yml', 'en');
    return $translator;
}));
Run Code Online (Sandbox Code Playgroud)

然后我注册ValidationServiceProvider,如下所示:

$app->register(new Silex\Provider\ValidatorServiceProvider());
Run Code Online (Sandbox Code Playgroud)

当我注册验证时,翻译停止工作.应翻译的所有字符串都不会被翻译而没有错误.我正在改变countroller中的语言环境,所以它可能与它有关:

$en->get('/{slug}', function (Silex\Application $app, $slug) {
    $app['locale'] = 'en';
Run Code Online (Sandbox Code Playgroud)

symfony silex

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

在ActiveAdmin编辑页面中渲染部分内容

我需要在ActiveAdmin页面中呈现部分内容.我正在尝试这样的事情:

  form(:html => { :multipart => true }) do |f|
    f.inputs "???????? ?????? #{f.object.name if f.object.name}" do
      f.input :name, :required => true
      f.input :brand
      f.input :category
      f.input :created_at, :wrapper_html => { :class => 'inline-list' }
      f.input :updated_at, :wrapper_html => { :class => 'inline-list' }

      f.actions
    end
    content do
      render partial: 'fancybox'
    end
  end
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我的部分内容替换了表单内容.我想我需要一个正确的包装元素,render但使用panel并没有成功.有什么想法吗?

ruby-on-rails activeadmin

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

一线加注如果

我想缩小raise if到一行.我有:

def hey(self, message):
    if not message:
        raise ValueError("message must be a string")
Run Code Online (Sandbox Code Playgroud)

它工作,但这段代码不起作用:

def hey(self, message):
    raise ValueError("message must be a string") if not message
Run Code Online (Sandbox Code Playgroud)

我得到SyntaxError: invalid syntax.我该怎么办?

python

8
推荐指数
2
解决办法
5915
查看次数

如何忽略待处理的迁移?

我有一个 Rails 应用程序连接到另一个 Rails 应用程序数据库。他们有几种常见的型号。使用控制台时,一切正常(ActiveRecord 可以正确查询表),但使用 Web 服务器时,Rails 会检查挂起的迁移并引发错误Migrations are pending。我想通过此检查,因为这两个应用程序有不同的迁移。然后启动服务器。我试过:

config.active_record[:migration_error] = false
config.active_record.migration_error = false
Run Code Online (Sandbox Code Playgroud)

但没有运气。如何让 Rails 忽略那些待处理的迁移?跳过这个检查?或者有没有办法以某种方式命名它们,或者设置适当的mtime, 到最后的迁移文件?

activerecord ruby-on-rails

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

最小测试未初始化的常量错误

我正在尝试使用Spec语法运行Minitest rake test并出现以下错误:

/path/to/gem/spec/script_spec.rb:3:in `<top (required)>': uninitialized constant MyGem (NameError)
Run Code Online (Sandbox Code Playgroud)

我的Rakefile:

require 'rake/testtask'

Rake::TestTask.new do |t|
  t.test_files = FileList['spec/*_spec.rb']
end
Run Code Online (Sandbox Code Playgroud)

我的文件结构:

gem/
--lib/
----script.rb
--spec/
----script_spec.rb
--Rakefile
Run Code Online (Sandbox Code Playgroud)

我的script.rb:

module MyGem
  class OptionParser
    def self.option?(arg)
      arg =~ /^-{1,2}\w+$/
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

在script_spec.rb中使用Minitest :: Spec语法:

require "minitest/autorun"

describe MyGem::OptionParser do
  describe "option?" do
    it "must be true for option name" do
      OptionParser.option?('--nocolor').assert true
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我如何解决它?也许lib文件夹未加载?我会错过与Spec语法相关的内容吗?

ruby minitest

6
推荐指数
1
解决办法
4921
查看次数

看板数据库架构

我正在尝试在我的应用程序中实现像 Trello 这样的看板敏捷板。我想知道如何以最好的方式做到这一点。我正在考虑这些实体:

董事会
有很多清单

列表中
有很多卡

卡片
包含一些内容

但是我一直坚持卡片的订购。每张卡片都应该有一个排序位置,以便按列表中的特定顺序对卡片进行排序。拖动卡片时,我应该更改它的位置并将其保存在数据库中。做到这一点最有效的方法是什么?

向每张卡片添加一个position字段似乎是多余的,因为在将一张卡片拖到不同的位置(将有数百张卡片)后,我必须重新计算列表中(或两张)所有卡片的位置。我正在考虑将所有卡 id 的数组存储在列表中,并按该数组对卡进行排序。该解决方案的优点/缺点是什么?还有更好的解决方案吗?

我正在使用 Ruby on Rails 和 PostgreSQL。

更新

使用@cske回答我想出了以下解决方案:

CREATE OR REPLACE FUNCTION move_buyer_card(
    new_list_id   INT
  , param_id      INT
  , new_position  INT
) RETURNS FLOAT4
LANGUAGE plpgsql SECURITY DEFINER
AS $$
DECLARE
  var_lower_bound FLOAT4;
  var_upper_bound FLOAT4;
  var_new_weight  FLOAT4; /*between 0 and 1*/
BEGIN
  IF new_position < 2 THEN /*first position*/
    var_lower_bound := 0;
    SELECT MIN(weight) FROM Buyers
      WHERE board_list_id = new_list_id
      INTO var_upper_bound;
    IF var_upper_bound IS …
Run Code Online (Sandbox Code Playgroud)

architecture postgresql ruby-on-rails application-design kanban

5
推荐指数
1
解决办法
2967
查看次数