【问题标题】:returning rails object by id & routing problem?(Ruby rails)通过 id 和路由问题返回 rails 对象?(Ruby rails)
【发布时间】:2011-10-23 22:50:11
【问题描述】:

这应该是一个相对简单的,但我一定是我的路线或其他什么地方出错了。我想根据 id 将活动记录作为 json 返回。所以这就是我所拥有的,在我看来它应该有效。

路线:

match '/repository/infoid/(.:id)(.:format)' =>'repo#infoID', :via =>:get

控制器内的def

 def infoID
     puts (params[:id])
    @specificObject = myObject.find_by_id(params[:id])
    respond_to do |format|
      format.xml{
        render :xml =>
        {
           :returnedObject => @specificObject
        }
      }
    end
  end

为什么当我转到我的地址http://127.0.0.1:3008/repository/infoid/1.xml

我没有找到 /inoid/1.xml 的路由

【问题讨论】:

    标签: ruby-on-rails ruby xml json activerecord


    【解决方案1】:
    get '/repository/infoid/:id' => 'repo#infoID'
    

    控制器的小重构

    def infoID
      @specificObject = MyObject.find(params[:id])
      respond_to do |format|
        format.html{}
        format.xml{
          render :xml => @specificObject
        }
      end
    end
    

    【讨论】:

    • 看起来更好。那和通过get使用有什么区别?
    • 没有区别,只是更干净。在:id 之前你也有不必要的点
    • 在路径末尾添加 (.:format) 怎么样。我希望能够指定要返回的格式。我将提供 json 和 xml,只需要知道如何在路由中引导它们
    • 你也可以添加 (.:format),也可以指定 :as 选项为您的路线创建命名路径
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多