ruby-on-rails – 在轨道上没有使用ruby工作.为什么?

我有一个名为join的post方法,应该执行以下操作:
1)创建一个新对象
2)用json对象响应

这是我的代码

class GameController < ApplicationController

  respond_to :json

  def join
    @p = Player.new(:name => params[:name])
    @p.save!
    respond_with({:uuid => @p.uuid})
  end
end

出于某种原因,respond_with调用始终失败并显示以下错误

undefined method `model_name' for NilClass:Class

如果我将respond_with调用更改为更简单的东西,我仍然会收到错误,例如:

respond_with "hello"

产生此错误

undefined method `hello_url' for #<GameController:0x1035a6730>

我究竟做错了什么??我只想向他们发送一个JSON对象!

PS,我的路线文件看起来像这样:

match 'join' => 'game#join',:via => :post

解决方法

我相信respond_with方法要求您将资源(@p)作为参数传递.这是 some documentation for the method.

试试这个:

respond_with @p,:only => [:uuid]

你也可以这样渲染json:

render :json => { :uuid => @p.uuid }

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...