我正在使用Rails进行单页应用程序.登录和注销时,使用ajax调用Devise控制器.我得到的问题是,当我1)登录2)退出然后再次登录不起作用.
我认为它与CSRF令牌有关,当我退出时它会被重置(虽然它不应该是afaik),并且因为它是单页,旧的CSRF令牌正在xhr请求中发送,从而重置会话.
更具体地说,这是工作流程:
WARNING: Can't verify CSRF token authenticity
在服务器日志中打印)任何线索非常感谢!如果我可以添加更多详细信息,请与我们联系.
我已经生成了一个新的rails 4(rc1)项目,使用rails new
并生成了一个脚手架rails g scaffold
.
正如预期的那样,它创建了迁移,控制器和所有必需的视图文件.
它还创建了show.json.jbuilder和index.json.jbuilder.
我假设这是为了帮助模型生成json.控制器也包含format.json调用.
问题:为什么它需要json以及生成的应用程序的哪个部分使用json?它看起来不像(对我来说)视图使用json渲染任何东西,似乎它们在服务器端呈现(@model变量在视图中用于获取内容).
边缘指南(http://edgeguides.rubyonrails.org/)没有提到jbuilder以及为什么需要它.
提前致谢!如果我能澄清这个问题,请告诉我.
如何使细胞的左边界变红?为什么这不起作用?谢谢!!
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
.main-table {
border-collapse: collapse;
}
.main-table td {
margin: 0px;
padding: 0px;
border: 1px solid #aaa;
padding: 1px 4px 1px 4px;
}
.left-border {
border-left: 1px solid red !important;
}
</style>
</head>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
Run Code Online (Sandbox Code Playgroud)
左边框是否应该覆盖.main-table td上指定的颜色?
<table class='main-table' cellspacing='0' cellpadding='0'>
<tr>
<td> 1 </td>
<td> 366 </td>
</tr>
<tr>
<td > 2 </td>
<td class='left-border'> 777 </td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 这是一个JSFiddle:http://jsfiddle.net/8p2yc/(这里有一个稍微修改过的例子:http://bl.ocks.org/mbostock/3883245 )
正如您在JSFiddle中看到的那样,沿y轴的刻度标签不适合svg.我知道我可以增加左边距,但问题是我不知道预先提供了什么数据.如果我只是使边距非常大,如果数字很短,图表看起来会很尴尬.
有没有办法在创建图表时预先计算最大标签宽度以正确设置边距?或许还有一个完全不同的解决方案?
var margin = {top: 20, right: 20, bottom: 30, left: 50},
width = 400 - margin.left - margin.right,
height = 200 - margin.top - margin.bottom;
var svg = d3.select("body").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
Run Code Online (Sandbox Code Playgroud)
谢谢!
似乎在Ruby中一遍又一遍地解析相同的JSON文件会占用越来越多的内存.考虑下面的代码和输出:
码:
require 'json'
def memused
`ps ax -o pid,rss | grep -E "^[[:space:]]*#{$$}"`.strip.split.map(&:to_i)[1]/1024
end
text = IO.read('../data-grouped/2012-posts.json')
puts "before parsing: #{memused}MB"
iter = 1
while true
items = JSON.parse(text)
GC.start
puts "#{iter}: #{memused}MB"
iter += 1
end
Run Code Online (Sandbox Code Playgroud)
输出:
before parsing: 116MB
1: 1840MB
2: 2995MB
3: 2341MB
4: 3017MB
5: 2539MB
6: 3019MB
Run Code Online (Sandbox Code Playgroud) 在控制器上运行以下代码时出现以下错误.请注意:formats=>[:json]
错误,即使:formats=>[:html]
传递给render_to_string
我究竟做错了什么?有任何想法吗?实际上,下面的代码工作正常,不确定哪些更改会影响此错误.Rails版本:3.2.8
顺便说一下模板肯定到位:loc/_search_details.html.erb
额外的问题:我在哪里可以找到api文档,显示哪些参数可以传递给render_to_string以及它是如何工作的?
错误: ActionView :: MissingTemplate(缺少部分loc/search_details,{:locale => [:en],:formats => [:json],:handlers => [:erb,:builder,:coffee]}.
respond_to do |format|
format.json {
@detail_str = render_to_string(:partial => 'loc/search_details', :layout => false, :formats=>[:html], :locals => {:beer_results => @beer_results})
@list_str = render_to_string(:partial => 'loc/search_list', :layout => false,:formats=>[:html], :locals => {:beer_results => @beer_results})
render :json => {:results => @results_hash, :result_details => @detail_str, :result_list => @list_str }
}
end
Run Code Online (Sandbox Code Playgroud) Probem:当搜索具有多个类似于搜索查询的单词的文本时,它们的排名高于具有一个完全匹配的文本.
示例:假设搜索查询是"生产力",那么"有机产品的生产"获得的排名高于"劳动生产率",因为它包含两个相似的单词,尽管没有确切的单词匹配.
问题:确定具有完全匹配的记录的优先级的最佳方法是什么?
这是我的pg_scope:
pg_search_scope :search,
:against => {
:title => 'A',
:search_string => 'B'
},
:using => {
:tsearch => {
:dictionary => 'english',
:any_word => 'true'
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
在 Ruby/Rails api http://api.rubyonrails.org/中查找方法文档的过程是怎样的?
我们以方法ActiveRecord::Base.update
为例。它被用在其中一种铁轨上。
update
Base 的源代码中
没有任何关于方法的内容https://github.com/rails/rails/blob/0065f378262dc3f47880ce6211c7474bc7d11f0b/activerecord/lib/active_record/base.rbActiveRecord::Base
.我怀疑这个方法是在 ActiveRecord::Relation 中。不过,我不确定。
我是 Ruby/Rails 的初学者,我来自 Java 世界,我通常希望在该类的 javadoc 中看到所有方法(也继承)。对于 Ruby/Rails,最有效的查找混合/继承方法的相关文档是什么?
提前致谢!
我需要确定用户在将文本输入textarea后按下cmd + enter的时间.我正在使用jquery.
这是我试过的:
<textarea id="checkMetaKey"></textarea>
<div id="display"></div>
$( "#checkMetaKey" ).keyup(function( event ) {
$( "#display" ).text(event.metaKey + " " + event.keyCode);
});
Run Code Online (Sandbox Code Playgroud)
JSFiddle:http://jsfiddle.net/WQG2b/
当点击cmd + enter时,我希望显示"true 13".但事实并非如此.
我只能单击CMD或CMD + ALT或CMD + CTRL才能使metaKey成为真的唯一方法.
如何捕获CMD + ENTER事件?
当我在Facebook上尝试它时,类似的功能似乎有效,我可以使用CMD + ENTER提交消息文本.
问:如何将复选框垂直居中?在这种特殊情况下,为什么在复选框边框和包含元素之间存在空白空间,因为所有元素的边距和填充都是0?
截图:
JSFiddle:http://jsfiddle.net/TZMF5/2/
HTML:
<div class="category-item">
<span class="input-container">
<input type="checkbox"/>
</span>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.category-item {
display: table;
border: 1px solid #cccccc;
margin: 0;
padding: 0;
}
.category-item .input-container {
display: table-cell;
margin: 0;
padding: 0;
text-align: center;
}
.category-item .input-container input {
margin: 0;
padding: 0;
vertical-align: middle;
}
Run Code Online (Sandbox Code Playgroud)
对此有类似的问题.无法找到适用于此案例的答案.谢谢!
css ×2
html ×2
javascript ×2
ruby ×2
activerecord ×1
ajax ×1
csrf ×1
d3.js ×1
devise ×1
jquery ×1
json ×1
macos ×1
memory ×1
memory-leaks ×1
pg-search ×1
postgresql ×1
svg ×1