美文网首页Ruby
rails布局和视图

rails布局和视图

作者: 李傲娢 | 来源:发表于2018-03-25 18:26 被阅读81次

渲染顺序以及继承

渲染页面的时候使用模版

在rails中可以通过指定layout的方式设置不同的控制器使用的布局文件.如果没有明确指定那么框架会首选在layout文件夹下查找和当前控制器同名的文件是否存在,如果不存在会默认使用application.html.erb

渲染视图

在做视图渲染的时候,会根据action的名字在对应的views目录中查找action.html.erb,可以通过为render方法指定参数的形式设置渲染的视图文件,如

def update
  @user = User.find(params[:id])
  if @user.update(user_params)
    redirect_to(@book)
  else
    render 'edit'
  end
end

如果调用 update 失败,update 动作会渲染同个控制器中的 edit.html.erb 模板.

如果要渲染其他控制器中的某一个action模版,可以通过指定render的参数为:'controller_name/action_name'的方式实现.如:

render 'user/login' # 渲染 app/views/user/login.html.erb
防止多次渲染

在render的时候如果一个action中有多个render会引起错误,建议使用 and return解决.如:

def show
  @user = User.find(params[:id])
  if @user.blank?
    render text: '用户信息不存在' and return
  end
  render json: @user
end

重定向

redirect_to重定向到指定的地址

redirect_back返回前一个页面

render和redirect的区别,render只会渲染视图不会执行相关action中的方法,redirect_to会执行一个新的页面跳转.

视图渲染

yield表明一个区域,渲染的视图会插入这里.可以通过命名的方式插入指定的区域,此方式需要结合content_for使用.

<!-- 布局代码 -->
<html>
  <head>
    <%= yield :head %>
  </head>
  <body>
     <%= yield %>
  </body>
</html>

<!-- 页面view -->
<% content_for :head do %>
  <title>我是标题</title>
<% end %>
<h5>插入页面中的内容</h5>
<p>这些内容会插入在body中</p>

局部视图

为了便于视图文件的重复利用和把大页面进行拆分,可以使用局部视图对页面进行组织.局部视图命名已_开始

渲染局部视图使用render方法:

<%= render 'shared/copyright' %>
<!--
  此段代码会引入 app/views/shared/_menu.html.erb这个局部视图文件
-->

可以为局部视图使用局部布局.局部布局也以_开头,放置在局部视图所在的文件夹下.使用局部布局的时候需要为render提供参数时指定属性名,如

<%= render partial: 'copyright', layout: 'footer' %>

使用局部视图的时候可以传递局部变量.如

<!-- new.html.erb -->
<h5>用户新增</h5>
<%= render partial: 'form', locals: {user: @user} %>
<!--_form.html.erb-->
<%= form_for(user) do |f| %>
  <div class="form-group">
    <label>用户名</label>
    <%= f.text_filed :name %>
  </div>
<% end %>

相关文章

  • Rails布局(layout)

    Rails 渲染响应的视图时,会把视图和当前模板结合起来。 1. 查找布局 默认布局 查找布局时,Rails首先查...

  • rails布局和视图

    渲染顺序以及继承 渲染页面的时候使用模版 在rails中可以通过指定layout的方式设置不同的控制器使用的布局文...

  • Rails布局和视图渲染

    创建响应 从控制器的角度,创建HTTP响应有三种方法: 调用 render 方法 调用 redirect_to 方...

  • 视图和布局

    有四个主要的控制组用于创建Xamarin.Forms应用程序的用户界面 Pages Xamarin.Forms页面...

  • 布局 和 视图

    1. 样式化常见组件 比如: xml中抽取的样式 wrap_content wrap_content tr...

  • Swift 学习 View Layout and Present

    View Layout and Presentation(视图布局和显示) 在堆栈中组合视图,动态生成视图组和列表...

  • Rails视图渲染

    在 MVC 架构中**控制器的作用是处理请求(request),但经常会把繁重的操作交给模型完成。返回响应(res...

  • xib添加约束

    1、当出现这种布局的时候; 视图1和视图2 3分别以上下的姿态布局,当从上往下添加约束的时候,只需要对视图1 和视...

  • 约束布局ConstraintLayout 使用

    ConstraintLayout 和 RelativeLayout 相似,其中所有的视图均根据同级视图与父布局之间...

  • IOS开发 自动布局子视图

    本节学习内容: 1.自动子视图布局的概念 2.自动布局视图的创建 3.自动布局子视图的实现 【ViewContro...

网友评论

    本文标题:rails布局和视图

    本文链接:https://www.haomeiwen.com/subject/qackcftx.html