当我在带有通过@ font-face加载的字体的画布上绘制文本时,文本无法正确显示.它根本不显示(在Chrome 13和Firefox 5中),或者字体错误(Opera 11).此类意外行为仅在第一次使用字体绘图时发生.之后一切正常.
这是标准行为还是什么?
谢谢.
PS:以下是测试用例的源代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>@font-face and <canvas></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 <canvas></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) 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) 我在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. …
对不起,可能,真的是新手问题:
我想定义一个返回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中对此字符串执行的操作是什么
可能在其他地方有答案,但我只是不知道如何找到它...
如果我是对的,*如果在函数定义中使用,则表示多个参数:
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) 我已经创建了一个带有上述选项的Rails 3项目.我可以以某种方式"恢复"此选项并在默认情况下恢复活动记录,还是我必须创建一个新项目?
编辑
好的,要获得ActiveRecord支持,我必须:
application.rb并替换为require 'rails/all'(或只是取消注释# require "active_record/railtie")# gem 'sqlite3-ruby', :require => 'sqlite3'在Gemfile中取消注释行(对于sqlite)rake db:create任务之后,似乎我可以像往常一样继续使用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,但如果有另一个更好的解决方案,我可以尝试推动它.
如果你还在这里,谢谢你读这个:)
我在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)
我不知道如何获得我设置的配置值.
谢谢你的帮助.
我有这样的场景:
如果我运行这个场景,它将执行所有5个步骤.但是我想跳过第4步(然后我应该看到文本)并执行第5步.
请给我你的建议.提前致谢.:)
我需要编写一个在 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 数组上使用?
编辑
根据 …