小编Anc*_*nia的帖子

UTF-8中的Ruby无效字节序列(ArgumentError)

可能重复:
ruby 1.9:UTF-8中的无效字节序列

我正在构建一个文件系统爬虫,并在运行我的脚本时收到以下错误:

wordcrawler.rb:8:in `block in <main>': invalid byte sequence in UTF-8 (ArgumentError)
    from /Users/Anconia/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/find.rb:41:in `block in find'
    from /Users/Anconia/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/find.rb:40:in `catch'
    from /Users/Anconia/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/find.rb:40:in `find'
    from wordcrawler.rb:5:in `<main>'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

require 'find'

count = 0

Find.find('/Users/Anconia/') do |file|                   # '/' for root directory on OS X
  if file =~ /\b(\.txt|\.doc|\.docx)\b/                # check if filename ends in desired format
    contents = File.read(file)
      if contents =~ /regex/
      puts file
      count += 1
    end
  end
end

puts "#{count} files were found"
Run Code Online (Sandbox Code Playgroud)

在我的开发环境中,我使用ruby 1.9.3; 但是,当我切换到ruby …

ruby encoding web-crawler

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

数组评估为零

下面我在一个名为Movie的模型中创建了一个类方法,它应该返回一个数组:

def self.all_ratings
  Array['G','PG','PG-13','R','NC-17']
end
Run Code Online (Sandbox Code Playgroud)

在我的电影控制器中,我使用以下实例变量访问它:

@all_ratings = Movie.all_ratings
Run Code Online (Sandbox Code Playgroud)

但是,当我在索引视图中使用它时,我收到以下错误:

You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
Run Code Online (Sandbox Code Playgroud)

我相信我正在正确地创建阵列,但我可能是错的.有关这些错误发生的原因吗?

以下是使用@all_ratings的视图:

%h1 All Movies

= form_tag movies_path, :method => :get do
  Include: 
  - @all_ratings.each do |rating|
    = rating
    = check_box_tag "ratings[#{rating}]"
  = submit_tag 'Refresh'
Run Code Online (Sandbox Code Playgroud)

以下是我如何将@all_ratings实现到控制器中

class MoviesController < ApplicationController

  @all_ratings = Movie.all_ratings
Run Code Online (Sandbox Code Playgroud)

ruby arrays ruby-on-rails

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

使用复选框过滤列表

我有一个电影列表以及他们的评级.在我的页面顶部,我有一个表单,其中列出了显示每个可用评级(G,PG-13等)的复选框.一旦用户点击复选框并点击提交,我只想显示所选的电影.

在我的索引方法中,我有一个名为的实例变量@filtered_ratings,它从已检查的电影中收集密钥.我的想法是@movies使用find方法在我的控制器中进行更改,并将键与@filtered_ratings电影列表进行匹配.但是,我认为我一直在做错,因为我无法让它发挥作用.我尝试了几种方法,@movies=Movie.find(params[:id] = @filtered_ratings)但我知道这是不正确的.有什么建议?

ruby checkbox ruby-on-rails find

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

创建新文件时运行python脚本

我有一个存储一堆jpg图像的文件夹.当一个新图像添加到此文件夹时,我需要在其上运行python脚本.

这可能吗?如果是这样,怎么样?我看到的一个可能的解决方案是pyinotify,但没有看到任何可靠的例子.

python file

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

响应的圈子与图像和文本

我正在尝试使用嵌入式徽标和文本构建以下圈子.我一直在使用Bootstrap来提供响应能力,这篇文章也需要效仿.我目前遇到了几个问题:

1)文本保持在1行,并且当有多个句子时不会换行

2)无法嵌入必要的徽标或按钮

以下是HTML和CSS

在此输入图像描述

    .circle {
      width: 100%;
      border-radius: 50%;
      text-align: center;
      font-size: 12px;
      padding: 50% 0;
      line-height: 0;
      position: relative;
      background: #38a9e4;
      color: white;
      font-family: Helvetica, Arial Black, sans;
    }
Run Code Online (Sandbox Code Playgroud)
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" />

<div class="row">
  <div class="col-md-4 col-md-offset-4">
    <div class="circle">
      Text text text
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

html css html5 css3 twitter-bootstrap

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

带有JSON Web服务的D3图表

我试图从本教程制作以下条形图.本教程使用TSV文件,但我修改了JSON代码.我已经检查过我创建的Node/Express服务中的端点确实返回了JSON,如下所示.还包括适当的D3库.检查完所有这些后,我无法获取图表.http://localhost:3000/graphs/data

目标是route在x轴和county轴上.任何建议将不胜感激.

JSON响应:

[{"route":"9","count":273},{"route":"49","count":242},{"route":"151","count":221},{"route":"8","count":220},{"route":"3","count":213},{"route":"82","count":209},{"route":"79","count":206},{"route":"N5","count":206},{"route":"62","count":206},{"route":"4","count":202}]
Run Code Online (Sandbox Code Playgroud)

条形码代码

<script>

var margin = {top: 40, right: 20, bottom: 30, left: 40},
    width = 960 - margin.left - margin.right,
    height = 500 - margin.top - margin.bottom;

var formatPercent = d3.format(".0%");

var x = d3.scale.ordinal()
    .rangeRoundBands([0, width], .1);

var y = d3.scale.linear()
    .range([height, 0]);

var xAxis = d3.svg.axis()
    .scale(x)
    .orient("bottom");

var yAxis = d3.svg.axis()
    .scale(y)
    .orient("left");

var tip = d3.tip()
  .attr('class', 'd3-tip')
  .offset([-10, 0])
  .html(function(d) { …
Run Code Online (Sandbox Code Playgroud)

json node.js express d3.js

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

Heroku上的烧瓶和芹菜:sqlalchemy.exc.DatabaseError:(psycopg2.DatabaseError)SSL错误:解密失败或错误的记录mac

我正在尝试在heroku上部署Flask应用程序,该应用程序在Celery中使用后台任务。我已经实现了应用程序工厂模式,以便将celery进程不绑定到flask应用程序的任何一个实例。

这在本地有效,但我还没有看到错误。但是,当部署到heroku时,总是会出现相同的结果:celery任务(我只使用一个)在第一次运行时成功,但是对该任务的所有后续celery调用均失败sqlalchemy.exc.DatabaseError: (psycopg2.DatabaseError) SSL error: decryption failed or bad record mac。如果我重新启动芹菜工人,循环将继续。

多个 问题表明此错误,但没有一个问题指定正确的解决方案。最初,我认为实现应用程序工厂模式将阻止此错误的出现,但还不完全如此。

app/__init__.py我创建celery和db对象中:

celery = Celery(__name__, broker=Config.CELERY_BROKER_URL)
db = SQLAlchemy()

def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])

    db.init_app(app)
    return app
Run Code Online (Sandbox Code Playgroud)

我的flask_celery.py文件创建了实际的Flask应用程序对象:

import os
from app import celery, create_app

app = create_app(os.getenv('FLASK_CONFIG', 'default'))
app.app_context().push()
Run Code Online (Sandbox Code Playgroud)

我用以下命令开始芹菜: celery worker -A app.flask_celery.celery --loglevel=info

实际的芹菜任务如下所示:

@celery.task()
def task_process_stuff(stuff_id):
    stuff = Stuff.query.get(stuff_id)
    stuff.processed = True
    db.session.add(stuff)
    db.session.commit()
    return stuff
Run Code Online (Sandbox Code Playgroud)

通过以下方式调用:

task_process_stuff.apply_async(args=[stuff.id], countdown=10)
Run Code Online (Sandbox Code Playgroud)

图书馆版本

  • 烧瓶0.12.2 …

python heroku celery flask flask-sqlalchemy

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