我的 Controller 中有一个latest
操作。此操作仅获取最后一条记录并呈现show
模板。
class PicturesController < ApplicationController
respond_to :html, :json, :xml
def latest
@picture = Picture.last
respond_with @picture, template: 'pictures/show'
end
end
有没有更清洁的方式来提供模板?由于这是Sites Controller ,因此似乎不得不为HTML格式提供
pictures/
部分似乎很多余。 最佳答案
如果要渲染的模板属于同一 Controller ,则可以这样编写:
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
关于ruby-on-rails - Rails 3 response_with自定义模板,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13345846/