小编Shu*_*huo的帖子

保存活动记录,保存关联对象的顺序是什么?

在rails中,保存active_record对象时,也会保存其关联的对象.但是has_one和has_many关联在保存对象时有不同的顺序.

我有三个简化模型:

class Team < ActiveRecord::Base
  has_many :players
  has_one :coach
end

class Player < ActiveRecord::Base
  belongs_to :team
  validates_presence_of :team_id
end

class Coach < ActiveRecord::Base
  belongs_to :team
  validates_presence_of :team_id
end
Run Code Online (Sandbox Code Playgroud)

我希望在team.save被召唤时,球队应该在其关联的教练和球员之前得到保存.

我使用以下代码来测试这些模型:

t = Team.new
team.coach = Coach.new
team.save!
Run Code Online (Sandbox Code Playgroud)

team.save! 返回true.

但在另一个测试中:

t = Team.new
team.players << Player.new
team.save!
Run Code Online (Sandbox Code Playgroud)

team.save! 给出以下错误:

> ActiveRecord::RecordInvalid:
> Validation failed: Players is invalid
Run Code Online (Sandbox Code Playgroud)

我发现team.save!按以下顺序保存对象:1)玩家,2)团队,3)教练.这就是我收到错误的原因:当玩家被保存时,团队还没有id,所以validates_presence_of :team_id玩家失败了.

有人可以向我解释为什么按此顺序保存对象?这对我来说似乎不合逻辑.

activerecord ruby-on-rails

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

Twitter API:REST和Streaming,有什么区别?

任何人都可以总结Twitter的REST API和它的Streaming API之间的差异吗?

它们中的任何一个都使用Push技术吗?

twitter

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

动态语言界面?

接口(或所有方法抽象的抽象类)是静态类型语言(如C#,JAVA)中的强大武器.它允许以统一的方式使用不同的派生类型.设计模式鼓励我们尽可能地使用界面.

但是,在动态类型语言中,在编译时不会检查所有对象的类型.它们不必实现以特定方式使用的接口.您只需要确保它们定义了一些方法(属性).这使得接口不是必需的,或者至少不像在静态语言中那样有用.

典型的动态语言(例如ruby)是否具有接口?如果确实如此,那么拥有它有什么好处?如果没有,那么我们是否会失去许多需要界面的漂亮设计模式?

谢谢.

dynamic-languages interface

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

C++:如何将字符串拆分为大小均匀的字符串?

在C++中,如何将字符串拆分为大小均匀的字符串?

例如,我有一个字符串"012345678",并希望它将它分成5个较小的字符串,这应该给我一些像"01","23","45","67","8"这样的东西.

我无法确定较小字符串的长度.在前面的示例中,原始字符串的大小为9,我想将其拆分为5个较小的字符串,因此除了最后一个字符串之外的每个较小的字符串应该是9/5 = 1的长度,但最后一个字符串的长度为9 - 1*4 = 5,这是不可接受的.

所以这个问题正式定义是:原始字符串被拆分为完全n个子字符串,并且没有两个子字符串的长度差异应大于1.

我的重点不是C++语法或库.这是如何设计算法,以便返回的字符串的大小几乎相等.

c++ string algorithm

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

Orgmode:一周内完成的任务报告

是否可以要求组织模式报告我在一段时间内工作的TODO项目列表?

我们可以假设每个Todo条目都有一个时间标记,例如<2014-03-13 Thu 17:04>

emacs org-mode

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

WPF线程:我可以在非UI线程中更新控件的数据上下文吗?

我们可以在非UI线程中更新WPF控件的数据上下文吗?

假设我们有一个LabelMyClass作为数据上下文,并绑定ContentMyProperty:

<Label Name="label" Content="{Binding MyProperty}" />,

其中,MyClass无非是:

public class MyClass : INotifyPropertyChanged
{
    int _myField;
    public int MyProperty
    {
        get
        {
            return _myField;
        }
        set
        {
            _myField = value;
            PropertyChanged(this, new PropertyChangedEventArgs("MyProperty"));
        }
    }
    public event PropertyChangedEventHandler PropertyChanged;
}
Run Code Online (Sandbox Code Playgroud)

在非UI线程中,我们可以myClass.MyProperty = "updated"更新标签的内容,但我们不能label.Content = "updated"直接做.那是对的吗?

我自己的答案:

这是我发现的:

c# wpf multithreading

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

Ruby on Rails是否处理并发请求?

Ruby on Rails是否处理并发请求?

如果没有,怎么做到这一点?

ruby-on-rails

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

比较不同输入下相同代码的执行路径

我正在调试一个非常复杂的C++函数,它在某些输入下给了我一些意想不到的结果.我想比较不同输入下的代码执行,以便找出导致我错误的部分.我正在寻找可以比较代码执行路径工具.如果存在这样的工具,请告诉我.或者,如果有一些技巧我可以用来做同样的事情?

为了具体地描述我的问题,我在这里使用一个人为的例子.

假设这是伪代码中的函数,

double payTax(double income)
{
   if (income < 10000)
      return noTax();
   else if ( 10000 < income < 30000)
      return levelOneTax();
   else if (30000 < income < 48000)
      return levelTwoTax();
   else  
      return levelThreeAboveTax();
}
Run Code Online (Sandbox Code Playgroud)

给定输入15000,该函数计算正确的税额,但不知何故输入16000给出错误的税额.据推测,输入15000和16000会导致函数完全执行相同的执行路径; 另一方面,如果它们走的是不同的路径,那么功能中的某些东西一定出错了.因此,比较执行路径的工具会显示足够的信息,可以帮助我快速识别错误.我正在寻找这样一个工具.最好与Visual Studio 2010兼容.如果这样的工具还保留变量值,那就更好了.

PS调试是我想要做的最后一件事,因为我正在使用的代码库比简单的payTax示例更大更复杂.

请帮忙.谢谢.

c++ execution

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

Mylyn提交缺省消息

我正在使用EGit和mylyn.当我以前将代码提交到git存储库时,提交对话框将由默认消息填充,显示任务ID,任务描述等.

现在我不再看到默认提交消息了​​.

我在网上查了一下,人们建议需要安装EGit Mylyn插件,我确实安装了该插件.

eclipse git github mylyn task

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

如何绑定到Tkinter中的所有数字键?

有没有办法绑定到Tkinter中的所有数字键?

它应该等同于:

frame.bind("0", my_handler)
frame.bind("1", my_handler)
frame.bind("2", my_handler)
...
Run Code Online (Sandbox Code Playgroud)

我希望我能找到类似的东西:

frame.bind("< num>", my_handler)
Run Code Online (Sandbox Code Playgroud)

但显然这不起作用.

python user-interface tkinter

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

如何删除没有id的元素

我有以下代码:

<%-- other tags --%>
<table>
  <tr width="100%">
    <td width="130" />
    <td id="BottomCell" width="100%" />
  </tr>
  <tr>
    <td/>
    <td/>
  </tr>
</table>
<%-- other tags --%>
Run Code Online (Sandbox Code Playgroud)

页面上可能有多个表。我希望td在加载页面时删除(或隐藏)之前的“BottomCell”。我怎样才能用 javascript 或 css 做到这一点?

谢谢。

顺便说一句,我正在开发一个将被放到页面上的 Sharepoint WebPart。位于该页面上,我无法直接控制该页面。但只要它显示在页面上,WebPart 就应该将其删除。

javascript css

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

DataContext.GetTable <TEntry>做什么?

考虑我有一个DataContext db,并且有一个Entity类User.因此,当System.Data.Linq.Table<User> table = db.GetTable<User>();第一次调用时,它是否立即从数据库中提取数据,是否使用延迟执行,或者数据是否已在db初始化时从数据库加载?

linq-to-sql

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

Python:在一个新数组中选择二维数组的特定行的优雅方法是什么?

例如,给定一个python numpy.ndarray a = array([[1, 2], [3, 4], [5, 6]]),我想选择数组的第0行和第2行a到一个新数组b,这样b就变成了array([[1,2],[5,6]].

我需要解决方案来处理更常见的问题,原始的2d数组可以有更多的行,我应该能够根据一些不相交的范围选择行.一般来说,我一直在寻找类似于a[i:j] + a[k:p]1-d列表的东西,但似乎2d-arrays不会以这种方式加起来.

更新 似乎我可以使用vstack((a[i:j], a[k:p]))这个工作,但有没有任何优雅的方式来做到这一点?

python arrays

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