在rails3应用程序中获取xml的问题

时间:2010-11-20 19:25:39

标签: xml ruby-on-rails-3 mongrel

我有一个非常奇怪的问题:在rails 3应用程序中使用xml格式请求数据适用于我的本地环境但在我的托管环境中,我得到NoM​​ethod错误。更确切地说:

未定义的方法`type'为nil:NilClass

这是我正在谈论的方法:

def getclosest
    radius = params[:radius].gsub(",",".").to_d
    origin = [params[:lat].gsub(",",".").to_d,params[:lng].gsub(",",".").to_d]

    @groceries = Grocery.within(radius, :origin => origin)

     respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @groceries }
        end
    end

当我转到网址时调用此方法:http://www.mysite.com/groceriesclosest/myradius/mylat/mylng

.html有效,但.xml没有,我得到上述错误。

但是,在我的本地环境中,当我转到http://localhost:3000/groceriesclosest/radiues/lat/lng.xml时,它可以正常工作

知道托管版本出了什么问题?顺便说一下,我正在使用Mongrel作为网络服务器。

谢谢!

修改

一些精确度:首先,“prod”中的数据集与本地和第二个相同,它是导致错误的行format.xml { render :xml => @groceries }

以下是应用程序跟踪的一部分:

app / controllers / groceries_controller.rb:92:在getclosest的块(2级)中 app / controllers / groceries_controller.rb:90:在getclosest中

完整追踪的一部分:

alt text

1 个答案:

答案 0 :(得分:0)

在以下行中出现相同的错误:

respond_with Article.all.comments

这适用于控制台,但不适用于我的xml响应。

我通过将该行更改为

来解决它
respond_with Article.all.comments.all

虽然在控制台中给出了相同的响应。

所以也许你可以试试像

这样的东西
render :xml => @groceries.all

代替。