我很好奇,如果这是可能的话。我希望根据ruby on rails中的操作结果呈现数据。这是代码:
def convert
render :text => Item.convert(params[:file], params[:output])
end
正如您目前所看到的,它只是呈现文本。项目模型包含两个参数:文件和输出。输出可以是xml,json,纯文本等。某种类型的数据。我希望能做的是我可以根据输出参数渲染输出。但要让它充满活力。我希望我能做到:
def convert
@items = Item.convert(params[:file], params[:output])
respond_to do |format|
format.json { render :json => @items }
format.xml { render :xml => @items }
end
end
会调用该方法并根据返回的数据生成适当的数据。测试上面的代码会返回一个空页面。身体标签完全是空的。
有什么想法吗?
感谢 迈克莱利
答案 0 :(得分:0)
如果您依靠params[:output]
的名称来确定要渲染的内容,我会写如下:
def convert
@items = Item.convert(params[:file], params[:output])
if File.extname(params[:output].match("text"))
render :text => Item.convert(params[:file], params[:output])
elsif File.extname(params[:output].match("json"))
render :json => Item.convert(params[:file], params[:output])
elsif File.extname(params[:output].match("xml"))
render :xml => Item.convert(params[:file], params[:output])
else
render :html => "default_html"
end
end
如果文件的扩展名与预期的不匹配,您应该有一个default_html.html.erb