问题列表 - 第38552页

rails has_many:through - 是否可以在直通表中有条件?

有两个模型,它们使用has_many:尽管关系链接.

有条件参数,它将在另一个模型表中查找条件,但是在某种程度上是否在连接表中创建条件?

例如,我有:

User
Game
GameUser
Run Code Online (Sandbox Code Playgroud)

一个用户可能有很多游戏,因为游戏可能有很多用户.但我想在联合表中存储额外的信息,例如,如果用户喜欢或不喜欢该游戏.

我希望在我的用户模型中有一个关系过滤器,如下所示:

has_many :games, :through => 'game_users'   
has_many :liked_games, :through => 'game_users', :conditions_join => { :like => true }
Run Code Online (Sandbox Code Playgroud)

有没有一种很好的方法来实现这个功能?

ruby-on-rails has-many-through ruby-on-rails-3

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

C#GetHashCode/Equals覆盖未调用

我遇到了GetHashCode和Equals的问题,我已经覆盖了一个类.我使用operator ==来验证两者是否相等,并且如果它们的哈希码相同以便验证它们确实相等,我希望它将调用GetHashCode和Equals.

但令我惊讶的是,没有被调用,并且相等测试的结果是错误的(虽然它实际上应该是真的).

覆盖代码:

    public class User : ActiveRecordBase<User>

        [...]

        public override int GetHashCode()
        {
            return Id;
        }

        public override bool Equals(object obj)
        {
            User user = (User)obj;
            if (user == null)
            {
                return false;
            }

            return user.Id == Id;
        }
    }
Run Code Online (Sandbox Code Playgroud)

平等检查:

    if (x == y) // x and y are both of the same User class
    // I'd expect this test to call both GetHashCode and Equals
Run Code Online (Sandbox Code Playgroud)

c# operator-overloading

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

NtCreateProcess和ZwCreateProcess有什么区别?

NtCreateProcess和ZwCreateProcess有什么区别?在ntdll.dll中,NtCreateProcess和ZwCreateProcess都指向完全相同的地址

native

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

C中的"-1L"是什么?

C中的"-1L","1L"等是什么意思?

例如,在ftell参考中,它说

...如果发生错误,则返回-1L ...

这是什么意思 ?什么是"1L"?

如果发生错误,为什么不返回NULL?

c

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

是否定义了javascript window.location.hash?

有什么方法可以判断是否window.location.hash定义了?

如果设置了,那么我将获取变量的值,并使用它在页面上显示额外的内容.

javascript hash location window defined

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

控件和线程

我有一个创建新线程的按钮.该线程包含以下内容.

foreach (DataRow r in results.Rows)
            {
                var item = new ResultItem(this)
                               {
                                   Image = r[1].ToString(),
                                   Video = r[2].ToString(),
                                   Title = r[3].ToString().Trim(),
                                   Duration = r[4].ToString().Trim()
                               };


                SearchFlow.Controls.Add(item);
            }
Run Code Online (Sandbox Code Playgroud)

我收到此错误:在一个线程上创建的控件不能作为另一个线程上的控件的父级.ResItem是自定义用户控件,它是项目的一部分,而不是第三方控件.有没有解决的办法?如何将此控件添加到新线程中的流表?

c# multithreading

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

Python sorted()键功能很奇怪

当我调试一些不合逻辑的行为时,我在Python 2.5 sorted()函数调用中遇到了以下奇怪:

>>> aa = [10, 5, 20]
>>> sorted(range(len(aa)))
[0, 1, 2]
sorted(range(len(aa)), key=lambda a: aa[a])
[1, 0, 2]
sorted(range(len(aa)), key=lambda a: -aa[a])
[2, 0, 1]
Run Code Online (Sandbox Code Playgroud)

前两个调用按预期工作,但最后一个调用是错误的!它应该是:[1,2,0].

经过进一步的实验尝试找到问题的根源后,我来到了这里(不使用lambda或否定操作,但它是同样的问题):

>>> bb = [-10, -5, -20]
>>> sorted([0, 1, 2], key=bb.__getitem__)
[2, 0, 1]
Run Code Online (Sandbox Code Playgroud)

即使像下面这样的事情也不起作用,并表明双重否定再次起作用:

>>> bb = [-10, -5, -20]
>>> def fun(i):
...    return bb[i]
>>> sorted([0, 1, 2], key=fun)
[2, 0, 1]
>>> def fun2(i):
...     return -bb[i]
>>> sorted([0, 1, 2], key=fun2)
[1, …
Run Code Online (Sandbox Code Playgroud)

python key sorted

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

修复未使用的形式参数警告而不进行抽象类

我有一个基类,它有虚函数.问题在于,允许对基数进行实例化,但这意味着它的所有函数都需要定义.这会导致编译器警告我未使用的参数.如果不制作纯虚函数并使其成为抽象类,我能做些什么来正确摆脱这些警告?

例:

class Foo {
public:
virtual void bar(int x) {} //unused formal parameter int x
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c++

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

使用CLLocationManager获取准确的位置

我开始乱用CLLocationManager,我正在尝试使用下面的回调方法.我去外面在我的iPhone上测试它,并且在最初的几次更新中,我似乎得到了胡言乱语的价值,就像突然我的距离是39米,即使我没有移动到任何地方.或者有时它会从5开始,然后跳到20米,再没有我移动到任何地方.我走到外面走了,从最初的起点开始的更新似乎"没问题",然后当我走回去时,我回到原来的39米起点.我想知道我在下面做的是否正确.我还包括了我的viewDidLoad方法,我初始化了我的CLLocationManager对象.

有没有办法确保我的第一个值是准确的?提前致谢.

- (void)viewDidLoad
{
    [super viewDidLoad];
    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.distanceFilter = kCLDistanceFilterNone;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    if (startingPoint == nil) {
        NSLog(@"NIL starting point");
        self.startingPoint = newLocation;
    }

    CLLocationDistance distance = [newLocation distanceFromLocation:startingPoint];
    NSString *distanceString = [[NSString alloc] initWithFormat:@"%g m", distance];
    distanceLabel.text = distanceString;
    [distanceString release];

    numberOfUpdates++;
    NSString *countString = [[NSString alloc] initWithFormat:@"%d", numberOfUpdates];
    countLabel.text = countString;
    [countString release];
}
Run Code Online (Sandbox Code Playgroud)

iphone cllocationmanager ios

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

制造商的时钟/闹钟包和类名列表,请添加

这不是一个真正的问题,抱歉.我只是想获得有关获取不同安卓制造商的时钟和闹钟的闹钟和时钟的包和类名的帮助.

我在这里列出了HTC,三星和股票Android类名.但你可以猜出包名.

// HTC
"com.htc.android.worldclock.TimerAlert",//
"com.htc.android.worldclock.AlarmAlert",//

// Samsung
"com.sec.android.app.clockpackage.ClockPackage",//
"com.sec.android.app.clockpackage.alarm.AlarmAlert",//

// Motorola
"com.motorola.blur.alarmclock.AlarmAlert",//
"com.motorola.blur.alarmclock.AlarmClock",//
"com.motorola.blur.alarmclock.AlarmTimerAlert",

// Stock Android Clock
"com.android.alarmclock.AlarmClock",// 1.5 / 1.6
"com.android.deskclock.DeskClock",// 
Run Code Online (Sandbox Code Playgroud)

如果您有LG,Sony或任何其他Android制造商,请添加到此列表中.我求求你.

android class clock package

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