问题列表 - 第30362页

在ActiveRecord中更改对象的类

假设FireNinja < Ninja我的数据库中有一个对象,使用单表继承存储.后来,我意识到他真的是一个WaterNinja < Ninja.将他改为不同的子类最干净的方法是什么?更好的是,我喜欢创建一个新WaterNinja对象,只需更换FireNinja数据库中的旧对象,保留ID.

编辑 我知道如何WaterNinja从我现有的对象创建新对象FireNinja,我也知道我可以删除旧对象并保存新对象.我想做的是改变现有项目的类.我是通过创建一个新对象并做一些ActiveRecord魔术来替换行,或者通过对对象本身做一些疯狂的事情,或者甚至通过删除它并重新插入相同的ID来做到这一点是问题的一部分.

ruby activerecord

5
推荐指数
2
解决办法
1438
查看次数

ie7中的列表样式不起作用

我有一个简单的设置,如此..

ul { list-style: none; }

    #navigation ul li a {
    padding: 0px 15px 0px 15px;
    line-height: 32px;
    float: left;
    color: #dedede;
    font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)

然后是一个清单.

<div id="navigation">
   <ul>
      <li><a href="#">etc</a></li>
      <li><a href="#">etc</a></li>
      <li><a href="#">etc</a></li>
      <li><a href="#">etc</a></li>
      <li><a href="#">etc</a></li>
   </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

意向?列表项应并排呈现在一条直线上.FireFox,IE8,Chrome和Opera中的Hunky dory.

IE7(以及6)也以锯齿状的阶梯式显示它们.有任何想法吗?

css

2
推荐指数
1
解决办法
6251
查看次数

引用vector :: front有效,但vector :: begin却没有

我有这段代码:

cerr << client->inventory.getMisc().front()->getName() << endl;
vector<itemPtr>::iterator it;
it = client->inventory.getMisc().begin();
cerr << (*it)->getName() << endl;
Run Code Online (Sandbox Code Playgroud)

让我解释一下:

client是一个tr1::shared_ptr指向一个对象,该对象具有一个名为的成员inventory,该vector<itemPtr>成员可以访问私有成员getMisc().itemPtr是一个typedef tr1::shared_ptr<Item>,并getName()返回一个私有std::string成员Item.

从本质上讲,client->inventory.getMisc()归结为a std::vector,我试图获得第一个元素的迭代器.

问题是第四行是segfaults.显然,迭代器或它指向的shared_ptr都是无效的.我使用第一个cerr语句来测试向量本身是否有效,并且它应该打印,所以我认为它是.

有什么我做错了吗?或者,你们会做什么来调试这个?

c++ segmentation-fault stdvector

3
推荐指数
1
解决办法
604
查看次数

为什么JavaScript说数字不是数字?

我有一段JavaScript代码,预计会为变量设置一个整数值.

有些东西坏了,所以当我尝试做的时候alert(A);,它会回来NaN.isNaN(A);返回true.但是,如果我alert(typeof(A));,它说number.

那么变量怎么可以是一个数字而不是一个数字呢?也许我误解了NaN究竟是什么?


编辑:感谢答案,我看到我错了,因为:

  • 的类型NaNNumber,
  • NaN是指"不是数字",这与"不是类型Number"不同,
  • 0/0是一个很好的例子NaN:它仍然是一个数字,但JavaScript(没有其他人)可以说零的实际值除以零.1/0另一方面,返回Infinity,这不是NaN.

javascript typeof nan

28
推荐指数
2
解决办法
4万
查看次数

Google App Engine:appcfg.py回滚

我正在使用Windows 7并且在我的生活中我无法弄清楚如何在appcfg.py上调用回滚功能.我想知道的是在命令提示符下输入的内容,以便我可以回滚我的应用程序.

google-app-engine rollback

28
推荐指数
6
解决办法
4万
查看次数

JavaScript对象定义条件 - 哪个更好?

我在JavaScript中定义/命名对象和函数有两种不同的方法,在使用之前首先检查名称的存在.问题是,我不知道哪一个更好(从速度和可用性的角度来看),并且不可能在谷歌搜索中使用布尔运算符来弄清楚它.

我经常看到的第一个:

var myNewObject = myNewObject ? myNewObject : function () {
    // Code goes here.
};
Run Code Online (Sandbox Code Playgroud)

第二个看起来更简洁,但我只看到一两个地方,所以我不知道它是否有标准甚至名称:

var myNewObject = myNewObject || function() {
    // Code goes here.
};
Run Code Online (Sandbox Code Playgroud)

从功能上讲,它们都做同样的事情,它们似乎都适用于我可以测试的每个浏览器.我的问题是 - 这更好,为什么?此外,虽然第一个定义基本上是一个单行条件......第二个定义是什么?

javascript object

7
推荐指数
2
解决办法
346
查看次数

Scala:转换嵌套集合的惯用语法是什么?

例如:我有一个地图列表,我想从地图的第三个"列"的值创建一个列表...

val l = List(Map(1 -> "test", 2 -> "test", 3 -> "test"), Map(4 -> "test", 5 -> "test", 6 -> "test"))
Run Code Online (Sandbox Code Playgroud)

scala

2
推荐指数
2
解决办法
487
查看次数

最优MySQL临时表(内存表)配置?

首先,我是优化mysql的新手.事实是我在我的Web应用程序中(每秒大约400个查询),一个使用GROUP BY我无法避免的查询,这是创建临时表的原因.我的配置是:

max_heap_table_size = 16M  
tmp_table_size = 32M  
Run Code Online (Sandbox Code Playgroud)

结果:临时表到磁盘百分比+ - 12.5%

然后我根据这篇文章改变了我的设置

max_heap_table_size = 128M  
tmp_table_size = 128M
Run Code Online (Sandbox Code Playgroud)

结果:临时表到磁盘百分比+ - 18%

结果没有预料到,不明白为什么.

这是错的tmp_table_size = max_heap_table_size?不应该增加尺寸?

询问

SELECT images, id  
FROM classifieds_ads   
WHERE  parent_category = '1' AND published='1' AND outdated='0'
GROUP BY aux_order  
ORDER BY date_lastmodified DESC  
LIMIT 0, 100;
Run Code Online (Sandbox Code Playgroud)

说明

| 1 |SIMPLE|classifieds_ads | ref |parent_category, published, combined_parent_oudated_published, oudated | combined_parent_oudated_published | 7 | const,const,const | 67552 | Using where; Using temporary; Using filesort …
Run Code Online (Sandbox Code Playgroud)

mysql sql optimization performance temp-tables

7
推荐指数
1
解决办法
1万
查看次数

58
推荐指数
7
解决办法
10万
查看次数

C语言中类似函数的宏定义

我想定义一个像MACRO这样的函数.即

#define foo(x)\
#if x>32\
 x\
#else\
 (2*x)\
#endif
Run Code Online (Sandbox Code Playgroud)

那是,

if x>32, then foo(x) present x
else, foo(x) present (2*x)
Run Code Online (Sandbox Code Playgroud)

但我的海湾合作委员会抱怨:

int a = foo(31);
Run Code Online (Sandbox Code Playgroud)

我认为C预处理器应该正确处理.因为在编译时,它知道x=33.它可以代替foo(33)(2*33)

c gcc c-preprocessor

7
推荐指数
3
解决办法
8万
查看次数