我正在寻找一种方法NSPredicate来设置LIKE条件来获取对象.除此之外,一个OR也是有用的.我正在尝试做一些事情,如果用户搜索"詹姆斯"我可以写一个NSPredicate将做相当于:
select * from users where firstname LIKE '%James%' OR lastname LIKE '%James%';
Run Code Online (Sandbox Code Playgroud) 我很难理解如何让Rails为渲染XML模板时验证失败的子资源显示明确的错误消息.假设我有以下几个类:
class School < ActiveRecord::Base
has_many :students
validates_associated :students
def self.add_student(bad_email)
s = Student.new(bad_email)
students << s
end
end
class Student < ActiveRecord::Base
belongs_to :school
validates_format_of :email,
:with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i,
:message => "You must supply a valid email"
end
Run Code Online (Sandbox Code Playgroud)
现在,在控制器中,假设我们想构建一个简单的API,允许我们在其中添加一个带有学生的新学校(再次,我说,这是一个可怕的例子,但为了问题的目的发挥作用)
class SchoolsController < ApplicationController
def create
@school = School.new
@school.add_student(params[:bad_email])
respond_to do |format|
if @school.save
# some code
else
format.xml { render :xml => @school.errors, :status => :unprocessable_entity }
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
现在验证工作正常,因为电子邮件与Student类中的validates_format_of方法中设置的正则表达不匹配而死亡.但是我得到的输出如下:
<?xml version="1.0" encoding="UTF-8"?>
<errors>
<error>Students is …Run Code Online (Sandbox Code Playgroud) 如果一个对象将被持久化到数据库,是否有一种紧凑的方式使用ActiveRecord来查询下一个要使用的id?在SQL中,像这样的查询看起来像:
SELECT max(id) + 1 FROM some_table;
Run Code Online (Sandbox Code Playgroud) 获取NSURL对象的有效方法如下:
foo://name/12345
Run Code Online (Sandbox Code Playgroud)
并将其分解为一个字符串和一个无符号整数,其中字符串val是'name'而unsigned int是12345?
我假设算法涉及将NSURL转换为NSString,然后使用NSScanner的某些组件来完成剩下的工作?
TextMate有一个很好的功能,允许您从当前上下文中执行脚本,并在单独的窗口中显示输出.这使您可以随时编写和测试代码.我几乎可以肯定MacVim/gVIM有类似的功能,但我不确定它是什么.目前我将缓冲区保存到磁盘,然后转到命令行并在这方面执行脚本.如何使用vim改进该工作流程?
目前有一种方法在Rails 4.0.0.beta1中使用ActiveRecord进行原始SQL选择查询吗?我看到ActiveRecord :: Base.execute不再存在.这是怎样的正确方法?
这是什么问题?
class UserInput {
public void name() {
System.out.println("This is a test.");
}
}
public class MyClass {
UserInput input = new UserInput();
input.name();
}
Run Code Online (Sandbox Code Playgroud)
抱怨:
<identifier> expected
input.name();
Run Code Online (Sandbox Code Playgroud) 我有兴趣优化我正在使用MongoDB的"分页"解决方案.我的问题很直接.我通常会限制使用该limit()功能返回的文档数量.这迫使我发出一个没有该limit()函数的冗余查询,以便我也可以捕获查询中的文档总数,这样我就可以将其传递给客户端,让他们知道他们必须发出额外的请求.检索其余文件.
有没有办法将其压缩为1个查询?获取文档总数但同时仅使用limit()?检索子集?是否有不同的方式来思考这个问题,而不是接近它?
pagination mongodb casbah mongodb-query aggregation-framework
我希望将具有外键的表单字段的查询集缩小到用户表,直到用户所属的组.
这些小组之前已经与我联系过了.该模型可能具有以下内容:
myuser = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)
而我的ModelForm非常简单:
class MyForm(ModelForm):
class Meta:
model = MyModel
Run Code Online (Sandbox Code Playgroud)
因此,当我实例化表单时,我在views.py中执行类似的操作:
form = MyForm()
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,我如何获取myuser字段,并过滤它,以便只有'foo'组的用户出现..类似于:
form.fields["myuser"].queryset = ???
Run Code Online (Sandbox Code Playgroud)
SQL中的查询如下所示:
mysql> SELECT * from auth_user INNER JOIN auth_user_groups ON auth_user.id = auth_user_groups.user_id INNER JOIN auth_group ON auth_group.id = auth_user_groups.group_id WHERE auth_group.name = 'client';
Run Code Online (Sandbox Code Playgroud)
我想避免使用原始SQL.有可能这样做吗?
例如,如果我进入IRB并执行以下操作:
jruby-1.6.7 :026 > puts [1,2,3,4,5]
1
2
3
4
5
=> nil
Run Code Online (Sandbox Code Playgroud)
反正有压制nil吗?问题是,如果我放入一个大型数据结构,它会发送一些其他不相关的返回响应.我更感兴趣的是看到调试语句的输出我在一个块中运行,并且必须不断向上滚动并查找真实数据.
ruby ×3
activerecord ×2
iphone ×2
casbah ×1
cocoa ×1
cocoa-touch ×1
core-data ×1
django ×1
ios ×1
irb ×1
java ×1
macvim ×1
mongodb ×1
nspredicate ×1
objective-c ×1
pagination ×1
python ×1
rest ×1
vi ×1
vim ×1