我正在对服务进行activeresource调用,我希望一些自定义错误消息作为反馈。我有一些验证不是正常的模型验证,所以我不能只返回@ object.errors。
因此,例如,我的验证之一就是这个。两个对象之间存在多对多关系,但我想将一个对象限制为与其他对象之间只有有限数量的关系(例如2)。这是一些代码:
在客户端中:
response = Customer.find(customer_id).put(:add_user, :user_id => user_id)
Run Code Online (Sandbox Code Playgroud)
这提出了向用户添加用户的请求。然后在服务中,我要检查此添加是否有效。
def add_user
@user = User.find(params[:user_id])
@customer = Customer.find(params[:id])
if @customer.users.length > 2
render :xml => "ERR_only_2_users_allowed", :status => :unprocessable_entity
end
end
Run Code Online (Sandbox Code Playgroud)
这是我的问题。在活动资源中,如果返回状态为错误,则客户端完全失败。我可以将状态更改为200,然后再返回err msg正文,但这似乎无法实现具有错误响应代码的目的。
我可以将来自客户端的整个请求调用放在开始/救援块中
begin
response = Customer.find(customer_id).put(:add_user, :user_id => user_id)
rescue ActiveResource::ResourceInvalid => e
#return error code
end
Run Code Online (Sandbox Code Playgroud)
但是当我收到422(unprocessable_entity)响应时,我什么也没回来,所以我没有收到自定义错误消息。响应=无
有谁知道我如何使用适当的响应代码来实现这些自定义错误消息?
为什么创建/修改locals()的成员在函数内不起作用?
Python 2.5 (release25-maint, Jul 20 2008, 20:47:25)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> # Here's an example of what I expect to be possible in a function:
>>> a = 1
>>> locals()["a"] = 2
>>> print a
2
>>> # ...and here's what actually happens:
>>> def foo():
... b = 3
... locals()["b"] = 4
... print b
...
>>> foo()
3
Run Code Online (Sandbox Code Playgroud) 我正在使用此处指定的格式解析RSS提要:http://www.feedparser.org/docs/date-parsing.html
日期元组(2009,3,23,13,6,34,0,82,0)
我有点难以理解如何将其转换为MySQL日期时间格式(Ymd H:M:S)?
with (nolock)当你应该/不应该使用它时,有人可以解释使用查询的含义吗?
例如,如果您的银行应用程序具有较高的事务率和某些表中的大量数据,那么哪些类型的查询可以解决?是否应该经常使用它/从不使用它?
我有一小段jQuery:
$('#showlink').click(function(){
$('#linkwindow').show('fast');
$('#linkwindow input').focus();
}
Run Code Online (Sandbox Code Playgroud)
如何在淡入淡出结束后调用焦点?有时候它会稍微发生,我最终会遇到一个奇怪的渲染错误.
我有一些asp和asp.net 2.0应用程序,我需要移动到一个新的Win2003服务器.
我已经创建了一个测试套件来验证是否正确安装和配置了不同的方面,但除了从两个服务器导出IIS元数据库并手动比较之外,是否还有我缺少的工具或技术?
有什么不同
<br style="clear:both;"/>
Run Code Online (Sandbox Code Playgroud)
VS
<div style="clear:both;"/>
Run Code Online (Sandbox Code Playgroud)
??
还有,我想
<div style="clear:both;"/>
Run Code Online (Sandbox Code Playgroud)
是一个很好的清算方式,但是
<div style="clear:both;"> </div>
Run Code Online (Sandbox Code Playgroud)
一个正确的方法?
有谁知道Sybase Powerbuilder的替代IDE?在使用VS2008和Eclipse之后,它感觉非常笨重.
如果没有,有没有人在IDE之外成功使用这种语言?我并不反对使用简单的文本编辑器,但我发现edit-import-regenerate-test-export-edit比简单地使用Powerbuilder编辑器更笨拙.
迄今为止,我唯一获得成功的工具是:
编辑:我添加了一笔赏金,以引起更广泛的关注.如果它存在,那将是一件非常好的事情.
编辑:那是令人失望的.赏金显然甚至没有让一个新人看到这个问题.
.NET是否具有与PHP的base_convert等效的本机函数,还是需要编写自己的函数?我想从任何基数转换为任何其他基数 - 其中'to'基数或'from'基数可以是任何整数2-36.
PHP函数示例:base_convert($ number_to_convert,$ from_base,$ to_base)
// convert 101 from binary to decimal
echo base_convert('101', 2, 10);
// 5
Run Code Online (Sandbox Code Playgroud)
正如Luke在Jon Skeet的回答中所指出的那样:Convert.ToString无法处理任何基数的转换,只有2,8,10和16
更新:显然,答案是:不,没有本地方式.下面,Erik展示了一种方法.另一个实现是:http://www.codeproject.com/KB/macros/Convert.aspx
如何回滚失败的rails迁移?我希望这rake db:rollback会撤消失败的迁移,但不会,它会回滚先前的迁移(失败的迁移减去一次).而且rake db:migrate:down VERSION=myfailedmigration也不起作用.我已经碰到了几次,这非常令人沮丧.这是我为复制问题所做的简单测试:
class SimpleTest < ActiveRecord::Migration
def self.up
add_column :assets, :test, :integer
# the following syntax error will cause the migration to fail
add_column :asset, :test2, :integer
end
def self.down
remove_column :assets, :test
remove_column :assets, :test2
end
end
Run Code Online (Sandbox Code Playgroud)
结果:
== SimpleTest: migrating ===================================================== -- add_column(:assets, :test, :integer) -> 0.0932s -- add_column(:asset, :error) rake aborted! An error has occurred, all later migrations canceled: wrong number of arguments (2 for 3)
好吧,让我们回滚:
$ rake db:rollback == …