我正在尝试使用Mini Profiler来描述我们的一些Rails控制器,但我想我正在尝试将它用于它不是为它构建的东西.我已经很好地分析了SQL查询,但我需要分解非SQL代码,因为我们在某些页面中看到了很多问题,但SQL似乎不是问题所在.
这是我正在谈论的截图:http://cl.ly/image/2J3i1C1c072O
您可以看到顶级(Executing action: show)需要9136ms才能完成,但执行的查询只是总时间的一小部分.我想我要问的是,是否有办法显示有关正在执行的代码的更多"详细"信息,或者我是否需要找到一个不同的工具来使用.不幸的是,New Relic不是一个选择.
谢谢你的帮助.
我有一个小的sinatra应用程序,我用来运行一个基本的网站.该网站的内容由客户提供,其中大部分来自PDF.因为我宁愿不必手动更换所有的<with <和&with &,有没有办法配置HAML/Sinatra自动为我做?
基本上,我有一些看起来像这样的块:
%p
large block of text here...
multi-line so I can see it in my IDE...
more lines here...
Run Code Online (Sandbox Code Playgroud)
我想找到一些配置选项,告诉HAML浏览所有内容并用他们的HTML实体对应物替换不安全的字符.
我尝试使用HTMLEntities gem,但这个网站有很多多行段落,我似乎无法让它工作.我的意思是我会在我的server.rb文件中做这样的事情:
def "/some_url"
@encoder = HTMLEntities.new
haml :some_template
end
Run Code Online (Sandbox Code Playgroud)
在我的模板中:
%p
= @encoder.encode("Really long multiline string...
some more lines here...
and more lines...")
Run Code Online (Sandbox Code Playgroud)
它会吐出关于错过结账的错误).
我有一个小小的反应应用程序,我正在玩,只是去了解图书馆.该应用程序只是一系列列表,从服务器填充.单击列表项时,该项的值将添加到应用级别的列表过滤器,然后将用于调用新数据以填充列表.
问题是我似乎无法使我的列表与应用程序(父级)中的新数据协调,即使在调用时也是如此setState.这是我的代码(咖啡):
###
@jsx React.DOM
###
{div, h1, h2, h4, ul, li, form, input, br, p, strong, span, a} = React.DOM
SearchApp = React.createClass
handleTopItemClick: (filter) ->
facet = filter.field
filters = @state.filters
if filters.facets[facet] and filters.facets[facet].length > 0
filters.facets[facet].push filter.value
else
filters.facets[facet] = [filter.value]
strArr = []
_.each filters.facets, (valArr, field) ->
_.each valArr, (val) ->
strArr.push "+(#{field}:\"#{val}\")"
@setState
filters: filters
queryStr: strArr.join(' ').trim()
getInitialState: ->
filters:
facets: {}
queryStr: ''
render: ->
(div {
id: 'content' …Run Code Online (Sandbox Code Playgroud) 我有两个数组:['x','y','z']和[1,2].我如何在第三个数组中创建值对(作为字符串)?
所以我最终得到这个:
['x:1', 'x:2', 'y:1', 'y:2', 'z:1', 'z:2']
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
我的React应用程序代码库中重复了以下模式:
const {items, loading} = this.props
const elem = loading
? <Spinner />
: items.length
? <ListComponent />
: <NoResults />
Run Code Online (Sandbox Code Playgroud)
尽管这肯定比嵌套实际 if/else子句更干净,但我正在尝试拥抱更优雅和实用的模式。我已经读过有关使用Eithermonad之类的东西的信息,但是我为之付出的所有努力最终看起来都更加冗长,并且可重用性较低(鉴于我想记住以前的尝试,该伪代码可能无法正常工作) :
import {either, F, isEmpty, prop} from 'ramda'
const isLoading = prop('loading')
const renderLoading = (props) => isLoading(props) ? <Spinner /> : false
const loadingOrOther = either(renderLoading, F)
const renderItems = (props) => isEmpty(props.items) ? <NoResults /> : <ListComponent />
const renderElem = either(loadingOrOther, renderItems)
const elems = renderElem(props)
Run Code Online (Sandbox Code Playgroud)
我可以使用哪种模式更干燥/可重用?
谢谢!
我有一个表格,有很多参数被传递给控制器进行处理.params的不同"集合"以类似的方式命名:
setname1_paramname
setname1_paramname2
Run Code Online (Sandbox Code Playgroud)
现在,我需要检查其中一个"集合"以验证是否已提交所有字段.现在,我正在使用手动If或样式声明:
if setname1_paramname.blank? || setname1_paramname2.blank? || ...etc
@object.errors.add_to_base("All setname1 fields are required.").
render :action => 'new'
return false
end
Run Code Online (Sandbox Code Playgroud)
有没有办法以编程方式循环这些参数,并将它们添加到@object错误?
谢谢!
我们已经让用户将他们的Facebook帐户连接到我们的网站几个星期了,我已经被赋予了找到一种方式将消息(即广告)发布到他们的墙上的任务.
从本质上讲,将会有一个cron作业每天在指定的时间运行,这将使用我们的app秘密和他们的oauth2_token(我们存储)发布到用户的墙上.
我做了一些搜索,我发现了这篇文章:http: //ckdake.com/content/2010/posting-to-facebook-from-a-ruby-on-rails-app.html
但这似乎要求我重新授权用户.我目前只使用OAuth2 gem来完成我所有的Facebook连接,并将用户的令牌存储在他们的用户配置文件中.我宁愿不建立一个全新的模型,只是为了存储重复的信息.
那么,有没有人做过这样的事情?如果是这样,你能指出我正确的方向吗?谢谢
尝试使用if语句设置sprite文件名,然后根据该字符串加载正确的文件.看起来我的变量范围存在问题,但我不知道它是什么.
这是我的代码:
if ([[GameManager sharedGameManager] newHighScore] == TRUE) {
NSString *highScoreLabelText = @"label-new-high-score.png"
} else {
NSString *highScoreLabelText = @"label-high-score.png"
}
CCSprite *highScoreLabel = [CCSprite spriteWithSpriteFrameName:highScoreLabelText];
[highScoreLabel setAnchorPoint:ccp(0,0)];
[highScoreLabel setPosition:ccp(20, winSize.height * 0.575f)];
[self addChild:highScoreLabel];
Run Code Online (Sandbox Code Playgroud)
XCode正在标记错误,说highScoreLabelText是未声明的标识符,因此不会编译应用程序.我是否需要在NSString中声明其他内容以使其余代码与变量一起使用?
我有与此类似的代码,我试图用它来生成一个由三个子数组组成的数组:
f = [1, 2.5, 3, 10]
p = [1.2, 5.1, 6.3, 11]
r = [1, 1, 1, 1]
coords = _.reduce([f, p, r], function(memo, series){
if(series.length){
memo.push(_.map(series, function(s, i){
return {x: s, y: i*100};
}));
}
}, []);
console.log(coords);
Run Code Online (Sandbox Code Playgroud)
最终结果应如下所示:
[
[{x:1,y:100},{x:2,y:2.5}...],
[{x:1,y:12},{x:2,y:51}...]
]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试执行代码时,它会返回cannot read property push of undefined.当我检查Chrome中的错误时,它指向我的memo.push行.代码对我来说似乎没问题,但我无法弄清楚我的错误在哪里.任何帮助表示赞赏.
我有一个看起来像这样的数据结构:
let tree = {
id: 1,
name: "Some Name",
children: [
{
id: 2,
name: "Child 1",
children: [...more nested objects...]
}
]
};
Run Code Online (Sandbox Code Playgroud)
我已经编写了一个递归函数来查找该树中的给定对象,但我现在还需要将通过树的路径返回到返回的对象。我想弄清楚如何修改我的搜索功能来做到这一点。
搜索功能:
_findInTree = (id, tree) => {
let result;
if (tree.id === id) {
result = tree;
} else {
for (let child of tree.children) {
if (child.id === id) { result = child; }
result = this._findInTree(id, child);
if (result) { break; }
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)