小编unk*_*ser的帖子

使用named_scope获取行数

Rails大师:我刚刚发现named_scope感谢另一个SO用户.:)

我想得到一组行的计数 - 即a SELECT COUNT(*).另外,我希望仍然能够在调用中链接命名范围.

这是命名范围的合法(尽管是奇怪的)用法吗?

named_scope :count, :select => "COUNT(*) as count_all"
Run Code Online (Sandbox Code Playgroud)

那么我可以做(例如):

@foobar = Foobar.count.scope.scope.scope
Run Code Online (Sandbox Code Playgroud)

通过访问计数@foobar.first.count_all.

(编辑解决艾伦的评论)

你可以这样做:

@foobar = Foobar.scope.scope.scope.size
Run Code Online (Sandbox Code Playgroud)

但这会导致结果查询而不是更快的SELECT COUNT(*)查询.我在查询的数据库中有大量的行.

有一个更好的方法吗?

ruby ruby-on-rails

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

是否可以在轨道中获取原始参数字符串?

鉴于以下网址:

http://foo.com?bar=1&wee=2
Run Code Online (Sandbox Code Playgroud)

从动作中获取URL的原始参数部分的最快方法是什么?

?bar=1&wee=2
Run Code Online (Sandbox Code Playgroud)

ruby url ruby-on-rails

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

在MYSQL中生成排名的最佳方法是什么?

除了MYSQL中的行数据之外,获得行级别的最佳方法是什么?

例如,假设我有一份学生名单,我想在GPA中排名.我知道我可以通过GPA订购,但是有什么最快的方式让MYSQL在我回来的rowdata中返回等级?

mysql sql

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

在Rails中指定复杂SQL查询的惯例是什么?

我对Rails相当陌生,我很好奇一些专家在需要构建包含许多条件的非常复杂的SQL查询时正在使用的约定.具体来说,保持代码可读和可维护.

我可以想到几种方法:

单行,在调用find()时:

@pitchers = Pitcher.find(:all, "<conditions>")
Run Code Online (Sandbox Code Playgroud)

使用预定义的字符串并将其传递给:

@pitchers = Pitcher.find(:all, @conditions)
Run Code Online (Sandbox Code Playgroud)

使用私有成员函数返回查询

@pitchers = Pitcher.find(:all, conditionfunction)
Run Code Online (Sandbox Code Playgroud)

我更倾向于私有成员函数约定,另外因为您可以传入参数来自定义查询.

有什么想法吗?

ruby ruby-on-rails

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

如何在rails中进行连接查询?

假设我有两个表,一个包含个人信息的学生主列表,以及一个班级中的学生注册列表.这两个表共享一个公共列,这是一个唯一标识学生的字符串,但它不是主键.

假设我想显示页面上的所有注册,以及来自学生的一些个人数据(比如说可能是家乡).

我明白这将是一个非常多的关系.主列表记录有许多注册.注册属于学生.

class Student < ActiveRecord::Base
    has_many :enrollments
end

class Enrollment < ActiveRecord::Base
   belongs_to :student
end
Run Code Online (Sandbox Code Playgroud)

这是两者之间的正确关系,如果是这样,我如何对共享列进行连接查询?

ruby ruby-on-rails

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

C#Interop:out params也可以为null

考虑以下DllImport:

[DllImport("lulz.so")]
public static extern int DoSomething(IntPtr SomeParam);
Run Code Online (Sandbox Code Playgroud)

这实际上引用了这样的C风格函数:

int DoSomething(void* SomeParam); 
Run Code Online (Sandbox Code Playgroud)

考虑SomeParam是一个"out"参数,但也可以是NULL.如果param为NULL,则C函数的行为会有所不同.所以我可能想要:

[DllImport("lulz.so")]
public static extern int DoSomething(out IntPtr SomeParam);
Run Code Online (Sandbox Code Playgroud)

但是,如果我在导入中将它设为out参数,我就无法将其传递为NULL,即我不能这样做:

int retVal = DoSomething(IntPtr.Zero)
Run Code Online (Sandbox Code Playgroud)

我有什么选择?

c# interop

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

标签 统计

ruby ×4

ruby-on-rails ×4

c# ×1

interop ×1

mysql ×1

sql ×1

url ×1