小编bdo*_*rry的帖子

Rails 3 respond_to:默认格式?

我正在将Rails 2应用程序转换为Rails 3.我目前有一个控制器设置如下:

class Api::RegionsController < ApplicationController
  respond_to :xml, :json
end
Run Code Online (Sandbox Code Playgroud)

使用和看起来如下的操作:

def index
  @regions = Region.all

  respond_with @regions  
end
Run Code Online (Sandbox Code Playgroud)

实现非常简单,api/regions,api/regions.xml和api/regions.json都会按照您的预期做出响应.问题是我希望api/regions默认通过XML响应.我有消费者期望XML响应,我不想让他们更改所有的URL以包含.xml,除非绝对必要.

在Rails 2中,您可以通过执行以下操作来实现:

respond_to do |format|
  format.xml { render :xml => @region.to_xml }
  format.json { render :json => @region.to_json }
end
Run Code Online (Sandbox Code Playgroud)

但在Rails 3中,我找不到将其默认为XML响应的方法.有任何想法吗?

ruby-on-rails ruby-on-rails-3

57
推荐指数
3
解决办法
5万
查看次数

Java注释返回神秘的类名

我对Java有点新,所以也许我误解了java中注释的用例.我的问题如下:

在注释方法之后,我在检查方法的注释时会收到诸如$ Proxy31的类名.我很好奇为什么我收到的类似于我的注释的类名,以及我可以做些什么来解决这个问题.

Method m = this.remoteServiceClass.getMethod(rpcRequest.getMethod().getName());
RequiredPermission a = m.getAnnotation(RequiredPermission.class);
Run Code Online (Sandbox Code Playgroud)

这会返回一个null注释,即使我知道它正在查找的方法已经实现了RequiredPermission注释.

for(Annotation a : m.getAnnotations())
{
    System.out.println(a.getClass().getName());
}
Run Code Online (Sandbox Code Playgroud)

这将打印出$ Proxy31类名.

java annotations

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