我的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文本。我该怎么做。请帮忙
答案 0 :(得分:1)
你可以改变,
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
端
答案 1 :(得分:0)
如果您想查看JSON请求,则必须在网址末尾提供.json
。
假设您不想提供网址,请在模型中键入:
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
。