使用视图

假设路线:

resources :users, only: [:index]

和控制器:

class UsersController < ApplicationController
  def index
    respond_to do |format|
      format.html { render }
    end
  end
end

视图 app/users/index.html.erb 将被渲染。如果视图是:

Hello <strong>World</strong>

输出将是一个带有文本的网页:“Hello World

如果要渲染其他视图,可以使用:

render "pages/home"

并将使用文件 app/views/pages/home.html.erb

你可以使用控制器实例变量将变量传递给视图:

class UsersController < ApplicationController
  def index
    @name = "john"

    respond_to do |format|
      format.html { render }
    end
  end
end

app/views/users/index.html.erb 文件中你可以使用 @name

Hello <strong><%= @name %></strong>

输出将是:“你好约翰

关于渲染语法的一个重要注意事项,你可以完全省略 render 语法,Rails 假设你省略它。所以:

class UsersController < ApplicationController
  def index
    respond_to do |format|
      format.html { render }
    end
  end
end

可以写成:

class UsersController < ApplicationController
  def index
    respond_to do |format|
      format.html
    end
  end
end

Rails 非常聪明,可以确定它必须渲染文件 app/views/users/index.html.erb