zoukankan      html  css  js  c++  java
  • Ruby on Rails Tutorial 第四章笔记 Rails 背后的 Ruby

    者在这一章介绍了 Ruby 语言的数据结构(字符串,数组,哈希等等的相关操作),以及 Ruby 类,函数的概念,并通过这些概念来说明 Ruby 是这样来支撑 Rails 的:

    1. 通过 helpers(辅助方法),包括内置和自定义的方法.
    2. 通过 Ruby class 的继承关系,实例变量等.

    尽管如此,作者仍然也强调了 Rails 的特性:

    Rails 是用 Ruby 编写的,但 Rails 不是 Ruby. 有些 Rails 类就像普通的 Ruby 类一样,不过也有些得益于 Rails 的强大功能. Rails 是一门单独的学问,应该跟 Ruby 分开学习和理解.

    helpers—— 辅助方法

    辅助方法分为两种: Rails 内置的辅助方法 & 自定义的辅助方法.

    Rails 内置辅助方法

    内置的辅助方法可以直接进行调用.
    如在 app/views/layouts/application.html.erb 中,有代码如下:
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>

    在 Ruby 中,函数的括号可以省略;同时,散列如果是最后一个参数,那么散列的花括号可以省略.

    自定义辅助方法

    位置: app/helpers/application_helper.rb
    功能会在所有的控制器,视图,测试中能够直接调用该辅助方法;

    但如果某个辅助方法是针对特定的控制器的,则应该放入该控制器的辅助方法中. 如 StaticPages 的控制器的辅助方法,位置在 app/helpers/application_helper.rb

    原理: _helper.rb 文件开头有 module ApllicationHelper, 辅助方法所在的 module 会由 Rails 自动引入.
    如果是自己编写的函数的模块,可以使用 include 把模块插入其他类中.

    Ruby 类——之实例变量

    下面以作者创建的 User 这个 class 来说明:

    class User
        attr_accessor :name, :email
        
        def initiate(attribute = {})
            @name = attribute[:name]
            @email = attribute[:email]
        end
    end
    

    在这个 class 的第一行中, attr_accessor 用于定义 getter 和 setter, 读取和设定 @name, @email 实例变量.
    在 Ruby 中, 实例变量可以跨函数使用, 
    在 Rails 中, 示例变量能在视图中可用.

  • 相关阅读:
    自定义指令directive
    angular中的表单验证
    ng-init,ng-controller,ng-model
    Redis执行lua脚本,key不存在的返回值
    消息队列对比
    数据库设计范式
    网络IO模型
    .NET 线程、线程池
    异步和多线程
    Memcache知识点
  • 原文地址:https://www.cnblogs.com/FBsharl/p/11406150.html
Copyright © 2011-2022 走看看