Day2 读书笔记&心得体会

2017-06-01  本文已影响11人  柳辉

一、读书笔记
2.2 Ruby的一些基础知识

def say_goodnight(name)
     result = "Good night, " + name
     return result
end
puts say_goodnight('john')
puts say_goodnight('link')

result不用声明,被赋值的时候便存在了。
puts say_goodnight('john')是含有两个方法,say_goodnight('john')这个方法的参数传给puts,puts是显示函数
还有另外一种写法是一样的道理:

puts(say_goodnight('john'))
puts "good night,\n grandama"

输出:
good night,
grandama

def say_goodnight(name)
     result = "Good night, #{name}"
     return result
end
puts say_goodnight('john')
puts say_goodnight('link')
def say_goodnight(name)
     result = "Good night, #{name.capitalize}"
     return result
end
puts say_goodnight('uncle')

结果:
good night,Uncle

$greet = "Hello" # $greet是全局变量
@name = "Produce" # @name是实例变量
puts "#$greet,  #$name"
def say_goodnight(name)
     "Good night, #{name.capitalize}"
end
puts say_goodnight('uncle')

结果是一样的

2.3 数组和散列表

2.4 控制结构

if dog > 10
    puts "danger, run away!"
end

可以改成这样:

puts "danger, run away!" if dog > 10

while循环语句也是如此

2.5 正则表达式

二、心得体会
今天的收获?一大堆rails函数

我对代码的理解:

class Admin::ApplicationController < ApplicationController # Admin::Application继承父类Application
  before_action :top_module_for_namespace #在执行这个文件的下面这些代码之前,先执行这行代码,获取顶级module
  before_action :sign_in_required #登陆
  before_action :permission_required #权限验证
  before_action :create_log #建立日志

  def model
    self.class.name.remove(/^Admin|Controller$/).singularize.safe_constantize #去掉类名中的Admin和controller,变成单数,返回
  end
  
  def top_module_for_namespace
    self.class.name.split('::').second.safe_constantize #这个类本身的名称以'::'分割成一个数组,并且第取出二个值
  end

  def sign_in_required
   return if current_user #如果用户已经登陆的话,则返回.....,否则提示无权限,并跳转到登陆页
   respond_to do |format|
      format.html { render template: 'admin/application/sign_in', layout: false }
      format.json { render json: {}, status: :unauthorized }
    end
   end

  def crud
    @record ||= model.find(params[:id]) if params[:id] #如果@record没有值的话,就把后面的一大串赋值给它
    @record ||= model.new # 新建一个记录
    @record = model.new(ActionController::Parameters.new(@record.attributes).permit(*model.admin_fields)) if @record.try(:id) && params[:action] == 'new' && params[:id].present?
    #动作控制器参数
    @record.attributes = param.permit(*model.admin_fields) #attributes
    @saved = @record.save if !request.get? && model.admin_fields.present?
    respond_with_record
  end
end
上一篇下一篇

猜你喜欢

热点阅读