controller 内 render 的用法

render :template render的意思是渲染,render :template就是渲染指定的模板,render的特性不是跑controller action, 而是直接将该action 下预设的模板显示出来,也可以指定要那个特定的模板。 render特定的模板 render views/foo/bar.html.erb render "foo/bar" render同一个controller下的action的view,用symbol个string都是一样的。 render :foobarrender "foobar"一样的。

render :layout rails预设的layout是app/views/layouts/admin.html.erb这个档案,有时候我们希望换一个版型,这时候我们就可以简历一个新的layout版型app/views.layouts/admin.html.erb. 在controller里面指定使用admin layout就可以了:

class AdminsController < ApplicationController
  layout "admin"
end

更高级的做法: 可以制定某个action使用admin layout

class AdminsController < ApplicationController
   layout "admin", :only => :new
   # 另外也可以在render的時候就指定要使用哪一個layout
   def show
      render :layout => "admin"
   end

   # 甚至可以指定模板再指定layout
   def index
    render :template => "others/weired_topics", layout: "admin"
  end
end

render :text render纯文字 例如:render "你好",输出的内容就是你好。

render :new

render :new 是指页面会显示new的页面。