`
- 浏览:
928011 次
-
=begin
在Ruby里,要读取,或是改变对象的属性,唯一的途径是调用对象的方法。
控制了对方法的访问,也就控制了对对象属性的访问。
控制对方法的访问,有三种方式:
访问控制 意义
public 可以被任何实例对象调用,不存在访问控制;
protected 可以被定义它的类和其子类访问,可以在类中或子类中指定给实例对象;
private 可以被定义它的类和其子类访问,不能被实例对象调用。
方法默认都是公有的(initialize方法除外,它永远是私有的)。
=end
class Person
def talk
puts "public :talk,将调用speak"
speak
end
def speak
puts "protected :speak,将调用laugh"
laugh
end
def laugh
puts "private:laugh"
end
protected :speak
private :laugh
end
p1=Person.new
p1.talk
#p1.speak 实例对象不能访问protected方法
#p1.laugh 实例对象不能访问private方法
puts "-----------------------------------------------------"
class Person
def speak
"protected:speak"
end
def laugh
"private:laugh"
end
protected :speak
private :laugh
end
class Student < Person
def useLaugh
puts laugh
end
def useSpeak
puts speak
end
end
p2=Student.new
p2.useLaugh # private:laugh
p2.useSpeak # protected:speak
puts "----------------------------------------------------"
class Person
def speak
"protected:speak "
end
def laugh
"private:laugh"
end
protected :speak
private :laugh
def useLaugh(another)
puts another.laugh #这里错误,私有方法不能指定对象
end
def useSpeak(another)
puts another.speak
end
end
p1=Person.new
p2=Person.new
p2.useSpeak(p1) # protected:speak
#p2.useLaugh(p1)
=begin
从上面三个程序可以得出结论:
public方法,可以被定义它的类和其子类访问,可以被类和子类的实例对
象调用;
protected方法,可以被定义它的类和其子类访问,不能被类和子类的实例
对象直接调用,但是可以在类和子类中指定给实例对象;
private方法,
可以被定义它的类和其子类访问,私有方法不能指定对象。
=end
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
action_access, 面向 Ruby on Rails的访问控制系统 操作访问 动作存取为模块,concise concise,真正收费使用访问控制系统的Access 。 它允许安全地保护应用程序和处理权限。关注当前用户可以访问的操作,而不是干扰...
屏幕录像2 CanCanCan是Ruby和Ruby on Rails的授权库,它限制了给定用户可以访问的资源。 所有权限都可以在一个CanCanCan Wiki中定义。 RDocs | 截屏视频1 | 屏幕录像2 CanCanCan是Ruby和Ruby on Rails的授权库,它...
API 的工具curl - 命令行- Chrome在您的应用程序中使用 API ruby应用程序中的 HTTParty 访问令牌就像用户名和密码一样将您识别为代表特定用户行事可以有特定的权限可以撤销OAuth 为您提供什么测试 API 调用存根 API ...
该库的目的是提供单点访问权限。邮件简介邮件是Ruby的一个互联网库,旨在处理电子邮件的生成,解析和发送,方式简单,简单。 该库的目的是提供一个访问点来处理所有电子邮件功能,包括发送和接收电子邮件。 所有网络...
仅Linux 仅限有线蜂鸣器控制器警告: ruby_buzz必须在Linux的/ sys和/ dev文件夹中更改一些权限,才能访问内核。 系统将要求您输入密码才能使用ruby_buzz。示例脚本scripts文件夹包含蜂鸣控制器的输入和输出功能的...
此狂欢扩展基于CanCan构建,可动态添加新角色并通过权限定义其访问权限。 演示版 尝试在Heroku上直接部署的Spree管理员的Spree管理员角色和访问权限: 直接在Heroku上尝试使用Spree管理员角色和Spree 4-1的访问...
如果将它与Rails控制器一起使用,则它要求您的应用程序中已经有某种用户对象,可以通过current_user (可配置)之类的方法进行访问。内容 可以轻松实现) 单独的单点登录应用中的角色用户积分(如StackOverflow) ...
授予访问权限骄傲地制造AccessGranted是基于多角色和白名单的Rails授权gem。 而且它是轻量级的(约300行代码)!安装将gem添加到您的gemfile中: gem 'access-granted' , '~> 1.1.0' 运行bundle命令进行安装。 然后...
用于Ruby中学生设备支持的信息亭 它有什么作用? kiosk-rb为学校内的自助服务终端提供了简化的解决方案,以支持学生设备,使学生可以提交遇到的问题,技术人员可以记录和管理这些支持请求。 特征: 简单的按学校...
Arpa是Ruby或Ruby on Rails的授权库,它限制了控制器和操作中的访问。 Arpa将帮助您动态自定义所需的所有权限。 安装 将此行添加到您的应用程序的Gemfile中: gem 'arpa' 然后执行: $ bundle 或将其自己安装为:...
扩展提供了每个Rails开发人员需要的搜索栏的访问权限: - GitHub - Rails API - Ruby-DOC - Ruby宝石 点击图标或按CTRL + SHIFT + F调出搜索框。用TAB选择目标。键入搜索词组,然后按ENTER键。 结果将显示在当前...
在某些环境中,调用此二进制文件将导致错误,表明所需的权限不可用。 这是因为wkhtmltopdf-binary附带了适用于许多平台的gzip二进制文件,然后在首次使用时选择了合适的二进制文件并将其解压缩到同一目录中。 因此...
CanCanCan是Ruby和Ruby on Rails的授权库,它限制了给定用户可以访问的资源。 所有权限都可以在一个或多个功能文件中定义,并且不能在控制器,视图和数据库查询之间重复,从而将您的权限逻辑放在一个位置,以便于...
向所有人开放在接受第一个补丁之后,将分叉此项目并提交补丁和请求请求的任何人都将被授予提交访问权限。玩得开心可以将其视为可以检出的Wiki。 通常可以将有用的食谱添加到指南针中。建筑您可以通过运行以下命令来...
CanCan是Ruby on Rails的授权库,它限制了给定用户被允许访问的资源。 所有权限都在一个位置( Ability类)中定义,并且不会在控制器,视图和数据库查询之间重复。 安装 在Rails 3中,将其添加到您的Gemfile并运行...
字型用于Ruby的客户端。... 这对于测试或确保您具有访问权限很有用。{ " name " : " Typeform I/O Build API " , " description " : " Build API for creating forms awesomely " , " version " : " v0.4 " , " docu
超级用户访问权限,因此您可以增加默认的共享内存设置(仅在初始安装过程中) 安装磁悬浮 有几种安装MagLev的方法: 从GitHub安装 使用Ruby版本管理器(RVM)安装 用ruby-build / rbenv安装 使用安装程序 从GitHub...
由于脚本更改系统文件,您很可能还需要 root 访问权限才能获得完整功能。 配置 配置变量可以在 config.rb 文件中找到。 为 Ubuntu 上的默认位置设置了主机和 apache 配置文件。 您很可能必须更改您保留站点的 ...
连接Ruby SDK获得访问权限在上注册以生成和检索您的API密钥,以便您可以开始使用SDK。安装与Bundler一起安装 gem 'connect_client'bundle install从RubyGems安装 gem install connect_client文献资料所有文档都可以...
服务器应该只有 SSH 访问权限和一对 RSA 密钥。 用户必须能够使用“sudo”并通过 SSH 登录。 首先,将所有文件从“server-install-scrips”复制到主用户的主目录: scp prepare.sh install.sh post-update ripple-...