问题列表 - 第21038页

保存主对象时,ActiveRecord是否保存belongs_to关联?

如果我有两个型号:

class Post < ActiveRecord::Base
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

class User < ActiveRecord::Base
  has_many :posts
end
Run Code Online (Sandbox Code Playgroud)

如果我做:

post = Post.new
user = User.new
post.user = user
post.save
Run Code Online (Sandbox Code Playgroud)

难道用户得到保存,以及与主键正确分配中postuser_id字段?

activerecord ruby-on-rails associations

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

调用元类库时出错:function()参数1必须是代码,而不是str

我今天早些时候试图将threading.Condition子类化,但它没有成功.当我尝试子类化threading.Condition类时,这是Python解释器的输出:

>>> import threading
>>> class ThisWontWork(threading.Condition):
...     pass
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Error when calling the metaclass bases
    function() argument 1 must be code, not str
Run Code Online (Sandbox Code Playgroud)

有人可以解释这个错误吗?谢谢!

python inheritance metaclass class

43
推荐指数
3
解决办法
5万
查看次数

OpenGL ES(iPhone)Touch Picking

希望在ES中进行经典的OpenGL鼠标选择.我不想使用第三方库,GLU端口和OpenGL名称堆栈等.这几乎留下了逆视图变换和光线交叉,对吗?

在以下的帮助下,我已经走得很远:http : //trac.bookofhook.com/bookofhook/trac.cgi/wiki/MousePicking http://eigenclass.blogspot.com/2008/10/opengl-es-picking-使用射线boundingbox.html

..但我还没有.这也是一个更容易的方式!

这是一些代码:

    -(void)handleTouch:(CGPoint)point {
    GLfloat width = backingWidth;
    GLfloat height = backingHeight;
    GLfloat x = point.x;
    GLfloat y = point.y;
    GLfloat z = 0.0f;

    //viewport -> normalized dev coord -> clip
    GLfloat n[] = {
        2 * x / width - 1,
        2 * y / height,
        2 * z - 1,
        1
    };

    float fov = 45.0f * (M_PI / 180.0f);
    float near = 0.01, far = 10.0f;
    float aspect = (float)backingWidth / …
Run Code Online (Sandbox Code Playgroud)

iphone opengl-es touch mouse-picking

6
推荐指数
1
解决办法
4469
查看次数

开始新活动时进度对话框

此按钮显示在我的开始活动中.按下它之后,将启动一个新活动,但这需要一些时间,因为初始化该新活动会从Internet收集一些数据.这工作一半.显示进度拨号但进度轮未旋转.

有人能告诉我为什么会这样吗?

  Button b4 = (Button) findViewById(R.id.Button01);
      b4.setOnClickListener(new View.OnClickListener() {
          public void onClick (View view) {    
           final ProgressDialog pd = ProgressDialog.show(pak.this, 
                         "", "Working..", true);

            new Thread(new Runnable(){
             public void run(){
              Intent intent = new Intent();
                 intent.setClassName("sxe.pak", "sxe.pak.List");
                 startActivity(intent);               
              pd.dismiss();
                }
           }).start();

          }
   });
Run Code Online (Sandbox Code Playgroud)

谢谢

android

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

自动将jQuery UI对话框调整为ajax加载的内容的宽度

我在查找具体信息和示例方面遇到了很多麻烦.我的应用程序中有许多jQuery UI对话框,附加到加载了.ajax()调用的div.它们都使用相同的设置调用:

 $(".mydialog").dialog({
        autoOpen: false,
        resizable: false,
        modal: true
 });
Run Code Online (Sandbox Code Playgroud)

我只想让对话框调整到加载内容的宽度.现在,宽度只保持300px(默认值),我得到一个水平滚动条.

据我所知,"autoResize"不再是对话框的选项,当我指定它时没有任何反应.

我试图不为每个对话框编写单独的函数,因此.dialog("option", "width", "500")不是一个真正的选项,因为每个对话框将具有不同的宽度.

指定width: 'auto'对话框选项只会使对话框占据浏览器窗口宽度的100%.

我有什么选择?我正在使用jQuery 1.4.1与jQuery UI 1.8rc1.看起来这应该是非常简单的事情.

编辑:我为此实施了一个kludgy解决方法,但我仍在寻找更好的解决方案.

javascript ajax jquery jquery-ui jquery-ui-dialog

134
推荐指数
2
解决办法
21万
查看次数

gdb:如何列出打开的文件

我想知道是否有可能获得已调试的应用程序已打开但未从GDB本身关闭的文件/目录列表?

目前我设置了断点,然后我使用外部程序lsof来检查打开的文件.

但这种方法真的很烦人.

环境:Debian-Lenny与gdb v6.8

编辑:我问,因为我的应用程序在某些情况下泄漏文件句柄

gdb

16
推荐指数
3
解决办法
2万
查看次数

动态选择端口号?

在Java中,我需要获取一个端口号,以便在同一程序的多个实例之间进行通信.现在,我可以简单地选择一些固定数字并继续使用它.但我想知道是否有一种方法可以动态选择端口号,这样我就不必为设置端口号而烦扰我的用户.

这是我的一个想法,它的工作原理如下:

  • 有一个固定的初始端口号A.
  • 程序'MyApp'启动,试图抓住端口A.
  • 如果成功,那么它就是'MyApp'的第一个实例.完成.
  • 如果失败,它会通过端口A询问A上的程序是否是"MyApp"的实例.如果是,请与该实例通信.完成.如果没有,请尝试抓住端口A + 1.如果有另一个程序使用该端口(也不是'MyApp'的实例),则抓A + 2,然后抓A + 3,依此类推.

这种策略有意义吗?或者有更好的方法来动态选择端口号吗?

java tcp

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

如何将现有的Android项目导入Eclipse?

我正在尝试将现有的Android项目导入到当前的Eclipse工作区中.我选择File-> New-> Android Project,它会打开Android项目对话框,然后选择"从现有源创建项目",Location,Build Target和Finish.

我收到以下错误:项目描述无效.

有谁知道如何克服这个错误?

eclipse android

168
推荐指数
4
解决办法
24万
查看次数

Calloc里面的功能

看看刚刚被问过的这个问题:对静态变量指针的不便会做这样的事情被认为是不好的做法,那么呢?

char* strpart(char* string, int start, int count)
{
    char* strtemp; 
    int i = 0; int j = 0;
    int strL = strlen(string);

    if ( count == 0 )
    {
        count = strL;
    }

    strtemp = (char*) calloc((count + 1), sizeof(char));
    for ( i = start; i < (start+count); i++ )
    {
        strtemp[j] = string[i];
        j++;
    }
    return strtemp;
}
Run Code Online (Sandbox Code Playgroud)

对不起,它编写得很快,但基本原则是 - 当在函数内部不使用静态缓冲区时,在函数内部分配内存是不好的做法吗?我假设是因为它不会被释放,是吗?以为我应该问.

c pointers memory-management calloc

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

寻找算法差异,检测并可以分组相似的行

我正在编写一个diff文本工具来比较两个类似的源代码文件.

周围有很多这样的"差异"工具,但是我的工具会有所改进:

如果它发现一组线在两侧都不匹配(即在两个文件中),它不仅要突出显示这些线,还要突出显示这些线中的各个变化(我在这里称之为线间比较).

我有点工作的解决方案的一个例子:

alt text http://files.tempel.org/tmp/diff_example.png

它目前所做的是采取一组不匹配的线条并再次通过差异运行它们的单个字符,产生粉红色突出显示.

然而,包含"原始2"的第二组不匹配需要更多工作:这里,添加了前两条右线("添加线a/b"),而第三条线是左侧的改变版本.我希望我的软件能够检测到可能的更改和可能的新行之间的这种差异.

看一下这个简单的例子,我可以很容易地发现这种情况:

使用像Levenshtein这样的算法,我可以在3到5的集合中找到所有正确的行,5行最好匹配左行3,因此我可以扣除右边的行3和4被添加,并执行inter左线3和右线5的线比较.

到现在为止还挺好.但我仍然坚持如何将此转换为更通用的算法.

在更复杂的情况下,一组不同的线可以在两侧添加线,其间具有一些紧密匹配的线.这变得非常复杂:

我不仅要匹配左边的第一行和右边的最好的一行,反之亦然,依此类推所有其他行.基本上,我必须匹配左边的每一行与右边的每一行.在最坏的情况下,这可能会产生偶数交叉,因此不再容易清楚哪些线路是新插入的,哪些线路只是被改变了(注意:我不想在这样的块中处理可能移动的线路,除非这实际上会简化算法).

当然,这永远不会是完美的,但我试图让它比现在更好.任何建议不是太神论但相当实用(我不是很好理解抽象算法),这是值得赞赏的.

更新

我必须承认,我甚至不了解LCS算法是如何工作的.我只是给它提供了两个字符串数组,然后列出了哪些序列不匹配.我基本上使用的是这里的代码:http://www.incava.org/projects/java/java-diff

查看代码,我找到一个函数equal(),负责告诉算法两行是否匹配.根据帕维尔的建议,我想知道这是否是我做出改变的地方.但是怎么样?此函数仅返回布尔值 - 而不是可以识别匹配质量的相对值.而且我不能简单地使用一个固定的Levenshtein比率来决定一条相似的线是否仍然被认为是相同的 - 我需要一些自我采用的东西来处理整个线路.

所以,我基本上说的是,我仍然不明白我在哪里应用与不完全匹配的线的相对相似性相关的模糊值.

algorithm diff text levenshtein-distance

6
推荐指数
1
解决办法
764
查看次数