在rails控制器中呈现json作为输出



我在rails控制器中有一个方法,在控制器中我需要将输出呈现为json格式的消息。

def createItem
    @item = Item.new(params[:item])
    respond_to do |format|
      if @item.save
        format.json { render json: message: "Item is successfully Created" }
      else
        format.json { render json: @item.errors, status: :unprocessable_entity }
      end
    end
  end

但当我提交表单时,浏览器显示为空白。我需要如上所述呈现json文本。我该怎么做。请帮助

您可以更改,

def createItem
  @item = Item.new(params[:item])
  respond_to do |format|
    if @item.save
      format.json { render json: message: "Item is successfully Created" }
    else
      format.json { render json: @item.errors, status: :unprocessable_entity }
    end
  end
end

def createItem
  @item = Item.new(params[:item])
  respond_to do |format|
    if @item.save
      json_string = {'message' => 'Item is successfully Created'}.to_json
      format.json { render :json => {item: @item, json_string}
    else
      format.json { render json: @item.errors, status: :unprocessable_entity }
    end
  end

结束

如果您想查看JSON请求,您必须在URL末尾提供.json

假设你不想给出url,在你的模型中你应该键入:

def as_json(options={})
    { :name => self.name }  # NOT including the email field
end
def as_json(options={})
    super(:only => [:name])
end

然后在你的控制器中:

def index 
  @names = render :json => Name.all 
end

然后JSON代码将在不使用.json的情况下自动显示出来。

相关内容

  • 没有找到相关文章

最新更新