我有一个控制器返回一个像这样的json结构:
def show
# .......
o_json = deep_object_1_to_json(o)
render :json => o_json
end
private
def deep_object_1_to_json(o)
o.to_json(
:include => {....})
end
Run Code Online (Sandbox Code Playgroud)
现在我需要扩展它以返回2个对象.然而,明显的解决方案是给我带来问题:
def show
# .......
o1_json = deep_object_1_to_json(o)
o2_json = deep_object_2_to_json(o)
render :json =>
{
:object_1 => o1_json,
:object_2 => o2_json
}
end
Run Code Online (Sandbox Code Playgroud)
这将返回一个带有2个转义的json数据字符串的json对象!
deep_object_2_to_json函数已经有几层嵌套包含,所以我宁愿不必将它们重构为单个函数.有没有办法使这个可以轻松扩展,以便将来添加更多的对象,而不会出现上面的双重转义问题?
谢谢你的任何指示.
我如何使用NSLocalizedString构建具有多个参数的字符串,同时让翻译器控件根据需要更改顺序?
我的Localizable.string中的一个示例是:
"score_out_of"="Your score is %i out of %i";
Run Code Online (Sandbox Code Playgroud)
并且会像
[NSString stringWithFormat:NSLocalizedString(@"score_out_of", nil), correct, total];
Run Code Online (Sandbox Code Playgroud)
但是在某些语言环境中,语法规则可能会规定总数必须正确。在目标C中,插值顺序似乎是硬编码的。
在其他语言中,这是通过命名参数来实现的,例如在ruby中将其定义为:
out_of: "Your score is %{correct} out of %{total}"
Run Code Online (Sandbox Code Playgroud)
并像这样调用:
I18n('out_of', {total: total, correct: correct})
Run Code Online (Sandbox Code Playgroud)
在iOS / Objective C上完成相同任务的推荐方法是什么?
localization objective-c internationalization nslocalizedstring ios
我父母内部有一个长div.
我认为它需要绝对定位,因为我想要水平滚动.
但是我只希望父div中的部分可见.我以为设置溢出:隐藏在父级上会实现这一点,但是没有这样的运气....
有谁知道如何获得这种效果?
谢谢
我有一个表,文件夹,我想要一些其他表引用,到目前为止,我的迁移脚本如下所示:
create_table :folders do |t|
t.timestamps
end
....
change_table table1 do |t|
t.references :folders
end
change_table table2 do |t|
t.references :folders
end
change_table table3 do |t|
t.references :folders
end
change_table table4 do |t|
t.references :folders
end
Run Code Online (Sandbox Code Playgroud)
由于我对每个表基本上做同样的事情,是否有更简洁和可维护的方式来编写它?
谢谢
考虑以下javascript:
$(function(){
var private_function = function(){
alert("private_function!");
}
setTimeout("private_function();", 1000);
});
Run Code Online (Sandbox Code Playgroud)
这会产生错误"private_function not defined".
有没有办法在javascript中推迟执行私有/匿名函数而不污染全局命名空间/通过全局模块公开它?
谢谢你的任何建议.
我收到一个非常奇怪的错误,我创建了一个用户'testuser',其中包含以下凭据:
CREATE USER 'testuser'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'%';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
我还修改了我的/etc/mysql/my.cnf,不要绑定到任何一个地址.(哪个afaik应该接受来自任何地方的连接?)并重新启动mysql.
我可以在本地连接没问题.
我在ubunutu的虚拟盒子里面跑.
试图从我的Windows机器连接,给我MySQL错误号码1045访问被拒绝用户'testuser'@'192.168.0.22'.
我确信这不是网络问题,因为更改主机或端口会产生不同的错误"无法连接到指定的实例"
以root身份登录并查看users表 - 所有内容都按预期显示.(单行,'%'表示主机和所有权限设置.)
我整个下午一直在撞墙,有人可以提出任何其他可能导致此错误的原因吗?
谢谢你的帮助.
我知道我可以使用范围来搜索两个日期之间的日期.例如:
User.where(:created_at => start_date..end_date )
Run Code Online (Sandbox Code Playgroud)
但是,如何在日期之前或之后对所有日期进行开放式搜索?
谢谢你的帮助
我有一个单页应用程序使用骨干来管理模型集合.
有时这个集合变得非常大,如果用户执行的操作会改变很多,这会导致.save被多次调用.在某些情况下,导致数百个ajax请求同时触发.
骨干网是否为这样的批量操作提供了单一的请求?或者是否有首选模式可供使用?
谢谢你的建议.
javascript ajax backbone.js backbone-events backbone.js-collections
我想制作滑块刻度的句柄,以给出滑块范围的视觉效果(例如,大多数浏览器中的滚动条).
做了一些谷歌搜索,答案似乎是修改.ui-slider-handle类.
我已经完成了这个并且句柄现在已经完成了:
这是我用来设置滑块的代码:
var range = 2 + Math.floor(Math.random() * 10);
$('#slider').slider({max: range});
$('.ui-slider-handle').width($('#slider').width() / range);
Run Code Online (Sandbox Code Playgroud)
这里还有一个实例的链接:http://tcusers.com/examples/6473423467/example.html
这就好像图书馆假设滑块的旧宽度,有没有人有任何建议来完成我想要的?我宁愿避免破解jquery ui核心库.
提前致谢
我的代码中有几个地方有嵌套对象,但不能保证它们总是被设置.
这可以给我一个nil的红宝石未定义方法:NilClass
puts obj1.obj2.obj3.obj4.to_s
Run Code Online (Sandbox Code Playgroud)
这项检查是丑陋和重复的:
if(obj1 && obj1.obj2 && obj1.obj2.obj3 && obj1.obj2.obj3.obj4)
puts obj1.obj2.obj3.obj4.to_s
end
Run Code Online (Sandbox Code Playgroud)
是否有一种简洁的写作方式,如果有什么是零只是默默地失败?
谁能解释为什么这两段代码不相同?要么我缺少一些东西,要么注入不做我认为它做的事情.鉴于:
nodes = [{id: 1}, {id: 2}]
Run Code Online (Sandbox Code Playgroud)
这段代码:
result = Hash.new
nodes.each do |node|
result[node[:id]] = node.inspect
end
result
Run Code Online (Sandbox Code Playgroud)
回报
{
1 => "{:id=>1}",
2 => "{:id=>2}"
}
Run Code Online (Sandbox Code Playgroud)
但是这个:
nodes.inject({}) {|hash, node|hash[node[:id]] = node.inspect}
Run Code Online (Sandbox Code Playgroud)
收益:
"{:id=>2}"
Run Code Online (Sandbox Code Playgroud)
为什么?
我有2个对象数组,我想合并它们,以便生成的数组将包含第一个数组中的所有元素,替换第二个数组具有相同id对象的任何元素.
finalArr=[]
arr1.each do |e1|
set2Contains=false
arr2.each do |e2|
if(e2.id==e1.id)
set2Contains=true
end
end
if(set2Contains)
finalArr.push(e2)
else
finalArr.push(e1)
end
end
Run Code Online (Sandbox Code Playgroud)
我是红宝石的新手,但由于它是一个衬里的王者,上面看起来有点冗长.我想知道我的代码是否可以以任何方式缩短/优化?
谢谢你的任何建议
ruby ×4
javascript ×3
activerecord ×2
css ×2
jquery ×2
ajax ×1
arrays ×1
backbone.js ×1
dry ×1
html ×1
html5 ×1
inject ×1
ios ×1
jquery-ui ×1
json ×1
layout ×1
localization ×1
migration ×1
mysql ×1
networking ×1
objective-c ×1
rest ×1