我的控制器中有最新动作.此操作只是抓取最后一条记录并呈现显示模板.
class PicturesController < ApplicationController respond_to :html,:json,:xml def latest @picture = Picture.last respond_with @picture,template: 'pictures/show' end end
是否有更清洁的方式来提供模板?似乎冗余必须提供HTML格式的图片/部分,因为这是Sites控制器.
解决方法
如果要渲染的模板属于同一个控制器,则可以像这样编写:
class PicturesController < ApplicationController def latest @picture = Picture.last render :show end end
图片/路径没有必要.你可以在这里深入探讨:Layouts and Rendering in Rails
如果需要保留xml和json格式,可以执行以下操作:
class PicturesController < ApplicationController def latest @picture = Picture.last respond_to do |format| format.html {render :show} format.json {render json: @picture} format.xml {render xml: @picture} end end end