我正在尝试在Mac(Mountain Lion)上使用rbenv安装Ruby 2.0.0-p195并出现此错误.
BUILD FAILED
Inspect or clean up the working tree at /var/folders/vt/27n8h2yj27v7rzq58075f3_m0000gn/T/ruby-build.20130618163859.1669
Results logged to /var/folders/vt/27n8h2yj27v7rzq58075f3_m0000gn/T/ruby-build.20130618163859.1669.log
Last 10 log lines:
installing default gems: /Users/me/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0 (build_info, cache, doc, gems, specifications)
bigdecimal 1.2.0
io-console 0.4.2
json 1.7.7
minitest 4.3.2
psych 2.0.0
rake 0.9.6
rdoc 4.0.0
test-unit 2.0.0.0
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?
Run Code Online (Sandbox Code Playgroud)
当我运行brew install openssl时,它说
Warning: openssl-1.0.1e already installed
Run Code Online (Sandbox Code Playgroud)
关于这个线程的解决方案https://github.com/sstephenson/ruby-build/issues/305我尝试以这种方式安装最新的稳定版并得到相同的错误
env CFLAGS='-g -O2' RUBY_CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline`" rbenv install 2.0.0-p195
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在使用本教程使用webpack设置React.js项目.下面的webpack.config.js几乎是一个精确的副本(除了我使用的是app'dist'文件夹),我还添加了d3.js作为external.因为React被添加为external允许我require('react')在我的任何应用程序文件中执行而不将其包含在捆绑包中.我希望做同样d3.js的事情,并将其安装为node_module,并将其列在我的webpack配置的外部区域,但是当我这样做时,require('d3')我收到一条错误消息,表明它不可用.
d3如果我将它安装为node_module,我如何使用(或jQuery)作为外部?
这是我的项目设置
/app
/dist
/node_modules
package.json
webpack.config.js
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)module.exports = { entry: './app/index.jsx', output: { path: './dist', filename: 'bundle.js', //this is the default name, so you can skip it //at this directory our bundle file will be available //make sure port 8090 is used when launching webpack-dev-server publicPath: 'http://localhost:8090/assets' }, module: { loaders: [ { //tell webpack to use jsx-loader for all *.jsx files test: …
以下代码来自Ryan Bates的RailsCasts,他将博客的首页转换为日历,以便文章在日期显示为链接.以下辅助模块创建日历.我对这段代码有两个问题
在该day_cell方法中,他使用了一种名为的方法capture.我在其上找到了一些文档,但我仍然无法弄清楚捕获在这种情况下是如何工作的.那么&callback,作为一个参数被捕获的是什么?是否与:callback传递给Struct.new 的相同?如果是这样,它如何进入捕获?什么是:传递给Struct的回调?
def day_cell(day)
content_tag :td, view.capture(day, &callback), class: day_classes(day)
end
Run Code Online (Sandbox Code Playgroud)源代码
module CalendarHelper
def calendar(date = Date.today, &block)
binding.pry
Calendar.new(self, date, block).table
end
class Calendar < Struct.new(:view, :date, :callback)
HEADER = %w[Sunday Monday Tuesday Wednesday Thursday Friday Saturday]
START_DAY = :sunday
delegate :content_tag, to: :view
def table
content_tag :table, class: "calendar" do
header + week_rows
end
end
def header
content_tag :tr do
HEADER.map { |day| content_tag :th, …Run Code Online (Sandbox Code Playgroud) 我有一个Rails应用程序,它使用postgresql作为数据库,按位置对不同类型的用户进行排序,然后根据网站上各种活动收到的信誉点进行排序.这是一个示例查询
@lawyersbylocation = User.lawyers_by_province(province).sort_by{ |u| -u.total_votes }
Run Code Online (Sandbox Code Playgroud)
该查询在User.rb模型上调用范围lawyers_by_province:
scope :lawyers_by_province, lambda {|province|
joins(:contact).
where( contacts: {province_id: province},
users: {lawyer: true})
}
Run Code Online (Sandbox Code Playgroud)
然后,仍然在User.rb模型上,它计算他们拥有的声誉点.
def total_votes
answerkarma = AnswerVote.joins(:answer).where(answers: {user_id: self.id}).sum('value')
contributionkarma = Contribution.where(user_id: self.id).sum('value')
bestanswer = BestAnswer.joins(:answer).where(answers: {user_id: self.id}).sum('value')
answerkarma + contributionkarma + bestanswer
end
Run Code Online (Sandbox Code Playgroud)
我被告知如果网站达到一定数量的用户,那么它将变得非常慢,因为它在Ruby而不是在数据库级别进行排序.我知道注释是指total_votes方法,但我不确定lawyers_by_province是在数据库级别还是在ruby中发生,因为它使用Rails帮助程序来查询数据库.看起来像两者兼而有之,但我不确定这对效率的影响.
你能告诉我如何写这个,以便查询发生在数据库级别,因此以更有效的方式不会破坏我的网站?
更新以下是total_votes方法中模型的三种方案.
create_table "answer_votes", force: true do |t|
t.integer "answer_id"
t.integer "user_id"
t.integer "value"
t.boolean "lawyervote"
t.boolean "studentvote"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "answer_votes", ["answer_id"], name: "index_answer_votes_on_answer_id", using: :btree
add_index "answer_votes", ["lawyervote"], name: "index_answer_votes_on_lawyervote", …Run Code Online (Sandbox Code Playgroud) 我准备用Qunit编写一些测试用于为ES6编写的Backbone应用程序,并将babel.js应用于它,以便它可以在当代浏览器中运行.为了确保我已正确设置qunit并正确指定所有路径,我首先测试了用ES5编写的Backbone模型,一切都按预期工作.但是,我随后将bundle.js(包含我的ES6代码的结果与babel.js应用于它)包括在内tests/index.html,并写入
test ( "Code transformed by babel.js contained in bundle.js can be tested", function(){
expect(1);
var es6model = new ES6Model();
equal( es6model.get("defaultproperty"), "defaultstring", "defaultproperty should be defaultstring");
})
Run Code Online (Sandbox Code Playgroud)
它告诉我ES6Model没有定义.
问题:有什么关于babeljs转换的代码会使使用Qunit进行测试更具挑战性吗?
除了babel在文件顶部写的所有复杂js之外,代码bundle.js看起来像这样
var Model = Backbone.Model;
var View = Backbone.View;
var Collection = Backbone.Collection;
var Router = Backbone.Router;
var LocalStorage = Backbone.LocalStorage;
var ES6Model = (function (Model) {
function ES6Model() {
_classCallCheck(this, ES6Model);
if (Model != null) {
Model.apply(this, arguments);
}
}
_inherits(ES6Model, …Run Code Online (Sandbox Code Playgroud) 这是一个js小提琴, 显示了行动中的问题.
在组件的渲染功能中,我使用类渲染div .blah.在componentDidMount同一个组件的功能中,我希望能够选择类.blah并像这样附加到它(因为组件已经安装)
$('.blah').append("<h2>Appended to Blah</h2>");
Run Code Online (Sandbox Code Playgroud)
但是,附加的内容不会显示.我也试过(也在小提琴中显示)以相同的方式追加但是从父组件追加到具有相同结果的子组件,并且也从子组件追加到具有相同结果的父组件的空间中.我尝试后者的逻辑是,人们可以更加确定dom元素已被渲染.
与此同时,我能够(在componentDidMount函数中)getDOMNode和追加到那个
var domnode = this.getDOMNode();
$(domnode).append("<h2>Yeah!</h2>")
Run Code Online (Sandbox Code Playgroud)
然而,我想用CSS样式做理由我希望能够附加一个我知道的类的div.此外,由于根据文档 getDOMNode被弃用,并且不可能使用替换getDOMNode来做同样的事情
var reactfindDomNode = React.findDOMNode();
$(reactfindDomNode).append("<h2>doesn't work :(</h2>");
Run Code Online (Sandbox Code Playgroud)
我不认为getDOMNode或是findDOMNode正确的方式来做我想做的事情.
问题:是否可以在React中附加到特定的ID或类?我应该用什么方法来完成我想要做的事情(getDOMNode即使它被弃用了?)
var Hello = React.createClass({
componentDidMount: function(){
$('.blah').append("<h2>Appended to Blah</h2>");
$('.pokey').append("<h2>Can I append into sub component?</h2>");
var domnode = this.getDOMNode();
$(domnode).append("<h2>appended to domnode but it's actually deprecated so what do I use instead?</h2>")
var reactfindDomNode = …Run Code Online (Sandbox Code Playgroud) 我使用键值存储作为我的golang应用程序的后端,日期用作键(保持条目排序)和json文档作为值.的JSON的顶层名字空间(foo),并且type和date 都存在我存储但除此之外也有一些差异(特别是相对于一些嵌套JSON数据),每个JSON文档中,因此,当keyI'm从数据库中提取,我真的不知道我在循环中随时都会拔出什么东西.以下是json数据的示例
{ "foo": { "id":"124", "type":"baz", "rawdata":[123, 345,345],"epoch": "1433120656704"}}
{ "foo" : { "id":"234", "type":"bar", "rawdata":[{"key":"dog", "values":[123,234]}, {"key":"cat", "values":[23, 45]}], "epoch":"1433120656705"}}
Run Code Online (Sandbox Code Playgroud)
当我从数据库中取出时,我要做的第一件事就是将每个条目解组为一个map[string]*json.RawMessage来处理foo命名空间
//as I'm looping through the entries in the database
var objmap map[string]*json.RawMessage
if err := json.Unmarshal(dbvalue, &objmap); err !=nil{
return err
}
Run Code Online (Sandbox Code Playgroud)
我感谢这个答案
然而,与那个SO答案不同,当我必须再次解组foo命名空间中包含的内容时,我不知道将哪个结构解组为
if err :=json.Unmarshal(*objmap["foo"], &bazorbar; err != nil{
return err
}
type Baz struct{
Id string `json:"id"`
Type string `json:"type"`
RawData []int …Run Code Online (Sandbox Code Playgroud) 我理解this关键字背后的一般想法,但我无法弄清楚它在实践中实际指的是什么.例如,在这两个示例练习中,我猜错了数字.
对于question1,我说警报会是'5',因为它指的是函数中匿名函数之外的this.x.
在问题2中,我认为警报将是5,因为这一行
var alertX = o.alertX;
Run Code Online (Sandbox Code Playgroud)
将变量o中的属性x的值5绑定到新变量'alertX',它将成为下一行中的函数调用:alertX();
你能解释我为什么错吗?
var question1 = function() {
this.x = 5;
(function() {
var x = 3;
this.x = x;
})();
alert(this.x);
};
var answer1 = 3;
var question2 = function() {
this.x = 9;
var o = {
'x':5,
'alertX':function() { alert(this.x); }
};
var alertX = o.alertX;
alertX();
}
var answer2 = 9;
Run Code Online (Sandbox Code Playgroud) 在backbone.js网站上没有关于Backbone.history.loadURL的文档http://backbonejs.org/#History-start 虽然我已经大致了解它在我看过的一些应用程序中产生了什么结果,但我并不完全是确定它是如何工作的,从它选择加载的URL和它如何知道加载某个URL到另一个URL.谁能解释一下?
$.ajax({
url: "json/Backboneapp_data.json",
dataType: 'json',
data: {},
async: false,
success: function (data)
{
_this._data = data;
_this._items = new ItemCollection(data);
_this._view = new MenuView({ model: _this._items });
_this._view.render();
Backbone.history.loadUrl();
}
});
Run Code Online (Sandbox Code Playgroud) 我跟随Ryan Bates的Railscast跟Postgres进行全文搜索,然而,他正在使用postgres 9.1而我正在使用9.2.他构建以下查询以执行搜索.如果我的查询是单个单词,例如"超人",但如果它是两个单词,例如dc comics,或者super man,我收到此错误,这对于postgres来说是新手,我无法弄清楚如何修复它对我有用.你能帮忙吗?
PG::Error: ERROR: syntax error in tsquery: "super man"
LINE 1: ...articles" WHERE (to_tsvector('english', name) @@ 'super man...
^
: SELECT "articles".* FROM "articles" WHERE (to_tsvector('english', name) @@ 'super man' or to_tsvector('english', content) @@ 'super man') ORDER BY ts_rank(to_tsvector(name), plainto_tsquery('super man')) +
ts_rank(to_tsvector(content), plainto_tsquery('super man'))
desc LIMIT 3 OFFSET 0
Run Code Online (Sandbox Code Playgroud)
来自Article.rb的查询
def self.text_search(query)
if query.present?
rank = <<-RANK
ts_rank(to_tsvector(name), plainto_tsquery(#{sanitize(query)})) +
ts_rank(to_tsvector(content), plainto_tsquery(#{sanitize(query)}))
RANK
where("to_tsvector('english', name) @@ :q or to_tsvector('english', content) @@ …Run Code Online (Sandbox Code Playgroud) javascript ×4
postgresql ×2
babeljs ×1
backbone.js ×1
d3.js ×1
ecmascript-6 ×1
go ×1
homebrew ×1
performance ×1
qunit ×1
rbenv ×1
reactjs ×1
ruby ×1
webpack ×1