如果我有两个型号:
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)
难道用户得到保存,以及与主键正确分配中post的user_id字段?
我今天早些时候试图将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)
有人可以解释这个错误吗?谢谢!
希望在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) 此按钮显示在我的开始活动中.按下它之后,将启动一个新活动,但这需要一些时间,因为初始化该新活动会从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)
谢谢
我在查找具体信息和示例方面遇到了很多麻烦.我的应用程序中有许多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解决方法,但我仍在寻找更好的解决方案.
我想知道是否有可能获得已调试的应用程序已打开但未从GDB本身关闭的文件/目录列表?
目前我设置了断点,然后我使用外部程序lsof来检查打开的文件.
但这种方法真的很烦人.
环境:Debian-Lenny与gdb v6.8
编辑:我问,因为我的应用程序在某些情况下泄漏文件句柄
在Java中,我需要获取一个端口号,以便在同一程序的多个实例之间进行通信.现在,我可以简单地选择一些固定数字并继续使用它.但我想知道是否有一种方法可以动态选择端口号,这样我就不必为设置端口号而烦扰我的用户.
这是我的一个想法,它的工作原理如下:
这种策略有意义吗?或者有更好的方法来动态选择端口号吗?
我正在尝试将现有的Android项目导入到当前的Eclipse工作区中.我选择File-> New-> Android Project,它会打开Android项目对话框,然后选择"从现有源创建项目",Location,Build Target和Finish.
我收到以下错误:项目描述无效.
有谁知道如何克服这个错误?
看看刚刚被问过的这个问题:对静态变量指针的不便会做这样的事情被认为是不好的做法,那么呢?
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)
对不起,它编写得很快,但基本原则是 - 当在函数内部不使用静态缓冲区时,在函数内部分配内存是不好的做法吗?我假设是因为它不会被释放,是吗?以为我应该问.
我正在编写一个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比率来决定一条相似的线是否仍然被认为是相同的 - 我需要一些自我采用的东西来处理整个线路.
所以,我基本上说的是,我仍然不明白我在哪里应用与不完全匹配的线的相对相似性相关的模糊值.