小编Ern*_*est的帖子

使用@ font-face将文本绘制到<canvas>在第一次时不起作用

当我在带有通过@ font-face加载的字体的画布上绘制文本时,文本无法正确显示.它根本不显示(在Chrome 13和Firefox 5中),或者字体错误(Opera 11).此类意外行为仅在第一次使用字体绘图时发生.之后一切正常.

这是标准行为还是什么?

谢谢.

PS:以下是测试用例的源代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>@font-face and &lt;canvas&gt;</title>
        <style id="css">
@font-face {
    font-family: 'Press Start 2P';
    src: url('fonts/PressStart2P.ttf');
}
        </style>
        <style>
canvas, pre {
    border: 1px solid black;
    padding: 0 1em;
}
        </style>
    </head>
    <body>
        <h1>@font-face and &lt;canvas&gt;</h1>
        <p>
            Description: click the button several times, and you will see the problem.
            The first line won't show at all, or with a wrong typeface even if it does.
            <strong>If you have visited …
Run Code Online (Sandbox Code Playgroud)

html5 canvas font-face

85
推荐指数
6
解决办法
7万
查看次数

了解Ruby中的私有方法

class Example
 private
 def example_test
  puts 'Hello'
 end
end

e = Example.new
e.example_test
Run Code Online (Sandbox Code Playgroud)

这当然是行不通的,因为我们指定了Example(e)的显式接收器 - 实例,这是针对"私有规则"的.

但我无法理解,为什么人们不能在Ruby中做到这一点:

class Foo
 def public_m
  self.private_m # <=
 end
 private
 def private_m
  puts 'Hello'
 end
end

Foo.new.public_m
Run Code Online (Sandbox Code Playgroud)

public_m方法定义(即self)中的当前对象是Foo的实例.那么为什么不允许呢?为了解决这个问题,我必须self.private_m改为公正private_m.但为什么这个不同,是不是selfFoo里面的一个例子public_m?谁是裸字private_m呼叫的接收者?不是self- 实际上你省略了什么,因为Ruby会为你做这件事(会在self上调用private_m)吗?

我希望我没有太多混淆,我对Ruby仍然很新鲜.


编辑:谢谢你的所有答案.把它们放在一起我能(最终)神交明显的(而不是一个人,谁从来没有见过的东西,比如Ruby那么明显):这self本身可以是显性和隐性的接收器,并且赚取差价.因此,有两条规则,如果你要调用一个私有方法:self必须是隐式接收器,以及自我必须是当前类的一个实例(Example在这种情况下-而且,只有当自己好像里面实例方法的定义,在此期间发生方法执行).如果我错了,请纠正我.

class Example 

 # self as an explicit receiver (will throw an error)
 def explicit 
  self.some_private_method
 end

 # self as an …
Run Code Online (Sandbox Code Playgroud)

ruby access-specifier

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

未捕获错误:不变违规:findComponentRoot(...,... $ 110):无法找到元素.这可能意味着DOM意外地发生了变异

我在React的嵌套循环中做错了什么?我在谷歌搜索过信息,但没有找到合适的信息.你能帮我找到,我理解错了吗?

从图中可以看出,我在变量中有数据.它工作正常.但是当我添加一个不是从这个值的值时<tr>,会出现错误!

    var TableBalls80 = React.createClass({
        render:function(){
            var rows = this.props.rows;
            var columnId = 0, trKey = 0, divKey = 0, td1stKey = 0;
            var td2ndKey = 100;
            return(
                    <table className='table table-bordered bg-success'>
                                <thead>
                                <tr className='danger'>
                                    {rows[0].row.map(function (element){
                                        columnId++;
                                        return (
                                        <th colSpan="2" key={columnId}>{columnId}</th>);
                                    })}
                                </tr>
                                </thead>
                                <tbody>
                                    {rows.map(function (rowElement){
                                        return (<tr key={trKey++}>
                                        {rowElement.row.map(function(ball){
                                            console.log('trKey:'+trKey+' td1stKey'+td1stKey+' ball.value:'+ball.value+' td2ndKey:'+td2ndKey+' ball.count:'+ball.count);
                                            return(<div key={divKey++}>
                                                <td className='info' key={td1stKey++}>{ball.value}</td><td key={td2ndKey++}>{ball.count}</td>
                                            </div>);
                                        })}
                                        </tr>);
                                    })}
                                </tbody>
                            </table>);
        }
    });
Run Code Online (Sandbox Code Playgroud)

错误(取决于从另一个项目添加的项目<tr>):

未捕获错误:不变违规:findComponentRoot(...,.0.1.1.0.2.0.0.1.$ 0. …

javascript reactjs react-jsx

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

attr_reader名称中带有问号

对不起,可能,真的是新手问题:

我想定义一个返回bool值的getter.网络连接:

  attr_reader :server_error?
Run Code Online (Sandbox Code Playgroud)

但是,我如何更新它,因为如果最后有一个问号,Ruby(1.9)会抛出语法错误:

#unexpected '='
@server_error? = true
self.server_error? = true
Run Code Online (Sandbox Code Playgroud)

ruby

29
推荐指数
3
解决办法
6874
查看次数

*(star)在Ruby中意味着什么?

可能重复:
*运算符在Ruby中对此字符串执行的操作是什么

可能在其他地方有答案,但我只是不知道如何找到它...

如果我是对的,*如果在函数定义中使用,则表示多个参数:

def hero(name, *super_powers)
Run Code Online (Sandbox Code Playgroud)

但是*在代码中做了什么呢:

Hash[*[[:first_name, 'Shane'], [:last_name, 'Harvie']].flatten] # => {:first_name=>"Shane", :last_name=>"Harvie"}
Run Code Online (Sandbox Code Playgroud)

ruby splat

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

在rails 3中使用--skip-active-record选项创建项目后,恢复AR支持

我已经创建了一个带有上述选项的Rails 3项目.我可以以某种方式"恢复"此选项并在默认情况下恢复活动记录,还是我必须创建一个新项目?


编辑

好的,要获得ActiveRecord支持,我必须:

  1. 删除单独的require调用application.rb并替换为require 'rails/all'(或只是取消注释# require "active_record/railtie")
  2. # gem 'sqlite3-ruby', :require => 'sqlite3'在Gemfile中取消注释行(对于sqlite)
  3. 创建database.yml文件并用选项填充它
  4. 调用rake db:create任务

之后,似乎我可以像往常一样继续使用AR.

ruby-on-rails ruby-on-rails-3

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

Rails 3中一个AR模型中的多个数据库表

我被要求提供某种报告(日志记录)服务.该员工在许多公司本地安装了Web应用程序(只是一些动态网站,用PHP编写).这个网络应用程序是某种调查.所有数据都保存在本地数据库中,但现在要求的是,每个表单提交后,这些数据(调查结果)也将被发送到中央服务器.

有四种类型的调查.他们以这种方式组织它,有很多项目,每个项目只能有一个每种类型的调查(这里是STI?),Survey属于一个项目.每个调查都会收到本地应用程序的报告,因此会有很多报告.记录此报告的Rails 3应用程序应该模仿这种逻辑.第一个问题是:这个AR结构对你有意义吗?

  Project-1--------1-Survey-1-------*-Report

  Project
    has_one :survey
    has_many :reports, :through => :survey

  Survey
    belongs_to :project
    has_many :reports

  Report
    belongs_to :survey
Run Code Online (Sandbox Code Playgroud)

第二个问题是为一个AR模型提供多个表.如果所有数据都将存储在reports表格中,则表格将变得非常快,并且在一段时间后对属于特定调查的报告进行有效查询可能会成为问题.也许每个调查都有单独的表格会更好吗?喜欢reports_<survey_id>.这可能吗?

此外,我不知何故被迫使用MySQL,但如果有另一个更好的解决方案,我可以尝试推动它.

如果你还在这里,谢谢你读这个:)

activerecord ruby-on-rails-3

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

获取rails控制器中的环境设置

我在development.rb中有一些电子邮件设置,我想在我的控制器中访问它.

设置development.rb是:

config.notify_submited_transaction = 'anil@swiftsetup.com,anildbest83@gmail.com'
config.notify_approved_transaction = 'anil@swiftsetup.com'
Run Code Online (Sandbox Code Playgroud)

在我的控制器/动作中,我正在尝试这个:

  @to = Rails.env.notify_submited_transaction
  @subject = 'AM - Vendor Submitted Transaction'
  AmMailer.vendor_submited_transaction(@to, @subject, current_user).deliver
Run Code Online (Sandbox Code Playgroud)

这虽然导致错误:

  undefined method `notify_submited_transaction'
Run Code Online (Sandbox Code Playgroud)

我不知道如何获得我设置的配置值.

谢谢你的帮助.

ruby-on-rails

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

如何跳过黄瓜步骤?

我有这样的场景:

  1. 鉴于我转到此页面
  2. 当我输入黄瓜
  3. 然后我点击
  4. 然后我应该看到文字
  5. 我不应该看到这条线

如果我运行这个场景,它将执行所有5个步骤.但是我想跳过第4步(然后我应该看到文本)并执行第5步.

请给我你的建议.提前致谢.:)

cucumber

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

将数组从 Rust 返回到 FFI

我需要编写一个在 Rust 中返回 u16 整数数组的函数。FFI 应该使用该函数。

extern crate libc;
use libc::{uint16_t};

#[no_mangle]
pub extern fn ffi_test() ->  *const uint16_t {
    let test: [u16;4] = [1,2,3,4];

    test.as_ptr()
}
Run Code Online (Sandbox Code Playgroud)

Rust 代码编译没有错误。我使用 Ruby 来测试 ffi 调用:

# coding: utf-8
require 'ffi'

module MyMod
  extend FFI::Library
  ffi_lib 'my_ffi_test_lib'
  attach_function :ffi_test, [], :pointer
end

a_ptr = MyMod.ffi_test
size = 4
result_array = a_ptr.read_array_of_uint16(size)
p result_array
Run Code Online (Sandbox Code Playgroud)

但结果完全错误(预期[1, 2, 3, 4]:):

$ ruby ffi_test.rb
[57871, 25191, 32767, 0]
Run Code Online (Sandbox Code Playgroud)

好像我正在读取完全不同的内存地址。我想也许我不应该#as_ptr()在 Rust 数组上使用?

编辑

根据 …

ffi rust

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