Ruby Rails 笔记 [rails for dot net developers节选]

简介: • In Ruby’s object-oriented world, we work with objects and methods. Unlike VB .NET, where some subroutines return a value (Functions) and others do not (Subs), all Ruby methods must return a value.

In Ruby’s object-oriented world, we work with objects and methods. Unlike VB .NET, where some subroutines return a value (Functions) and others do not (Subs), all Ruby methods must return a value. When an explicit return statement is not used, the last-evaluated expression automatically becomes the return value.

Variables are not declared prior to their use. Ruby automatically allocates memory for variables upon first use, and it also assigns their type based on inference. Like .NET, a garbage collector will reclaim memory automatically.

• There is no distinction made between methods, properties, and fields (or “member variables”) like there is in .NET. Ruby has only the concept of methods. However, Ruby classes do sport a convenient syntax for defining “attribute methods,” which are equivalent to defining .NET properties. attr_reader and attr_accessor automatically define methods that provide property-like access to instance variables.

Comments start with the hash character (#), unless the hash occurs inside a double-quoted string. Everything after the hash is ignored. There is no multiline comment character in Ruby.

• Ruby classes may define instance methods and class methods. Class methods are called static methods in .NET.

Methods can be declared public, protected, or private, and these visibility scopes have the same meaning as they do in .NET. There is no Ruby equivalent for “internal” or “assembly-level” visibility.

• Instance variable names must start with an at (@) sign and are always private. Class variables, or what we might call static variables in .NET, start with two at signs. The rules for memory allocation and object assignment for class variables can get pretty strange in Ruby, so we tend to avoid using them, especially since Rails provides an alternative syntax for using class variables in Rails applications.

• Ruby classes can be derived from only one base class but can“mix in” any number of modules. A module in Ruby is simply a set of related methods packaged together using the module key-word instead of class.

• There is no separate compilation step in Ruby. If we execute this Ruby code:

name = 'Joe'

len = name.length

puts name + " has " + len.to_s + " letters in his name."

puts "\t#{5*10}"

puts "Hello, #{name}. You have #{name.length} letters in your name"

#Searching and Replacing

word = "restaurant"

puts word.index('a') # prints 4

puts word.index("ant") # prints 7

puts word.index(/st.+nt$/) # prints 2

puts word.index(/ANT$/i) # prints 7

puts word.index('buffet') # prints "nil"

flight = "United Airlines, Flight #312, ORD to LAX, 9:45AM to 11:45AM"

puts flight.sub('United', 'American')

puts flight.sub(/(\w+)to/, 'PDX to')

puts flight.gsub('AM', 'PM')

#Trimming Whitespace

flight = " United Airlines, Flight #312, 9:45AM to 11:45AM "

flight = flight.gsub(/^\s+/, '') # remove leading whitespace

flight = flight.gsub(/\s+$/, '') # remove trailing whitespace

flight = flight.strip # removes leading and trailing whitespace

 

开发环境

使用命令行即可完成开发,如果需要代码导航、函数定义列表、重构等更高的效率,使用IDE是更佳的选择

Ruby in steel

商业软件[60天免费试用]

基于VS的插件

Aptana RadRails

开源软件

基于Eclipse

API和接口参考、图书

rdoc

命令行输入:gem server

在http://localhost:8808可以查看安装的rdoc文档

rails手册

www.railsbrain.com 可下载或在线查看

查找起来比rdoc更方便[IE无法察看时使用FireFox]

图书

Programming Ruby中文版

Agile web development with rails 3rd edition

rails for dot net developers

开源项目参考

Redmine: http://www.redmine.org

安装

按照站点上的安装说明,配置即可运行[rack版本要符合]

分析

使用Radrails “Import”->”Existing Folder As New Project”,即可查看和分析

入口:

Config/routes.rb中定义了控制器的映射关系,如

map.home '', :controller => 'welcome’

ð App下的controllers views目录下welcome_controller.rb welcome目录的内容

这个工程涉及到较多的概念和相关处理,初步整明白这个估计基本都可以应用了

 

想了解更详细的内容,可参考图书

 

相关文章
|
4月前
|
JSON 开发框架 JavaScript
【Azure Developer】使用.Net Core解析JSON的笔记
【Azure Developer】使用.Net Core解析JSON的笔记
|
4月前
|
前端开发 测试技术 数据库
使用Ruby on Rails进行快速Web开发的技术探索
【8月更文挑战第12天】Ruby on Rails以其高效、灵活和易于维护的特点,成为了快速Web开发领域的佼佼者。通过遵循Rails的约定和最佳实践,开发者可以更加专注于业务逻辑的实现,快速构建出高质量的Web应用。当然,正如任何技术框架一样,Rails也有其适用场景和局限性,开发者需要根据项目需求和个人偏好做出合适的选择。
|
4月前
|
前端开发 测试技术 API
揭秘Ruby on Rails的神秘力量:如何让你的Web应用飞起来?
【8月更文挑战第31天】Ruby on Rails(简称RoR)是一个基于Ruby语言的开源Web应用框架,自2005年发布以来,因简洁的语法、强大的功能和高效的开发效率而广受好评。RoR采用MVC架构,提高代码可读性和可维护性,拥有庞大的社区和丰富的库支持。本文通过示例代码展示其强大之处,并介绍RoR的核心概念与最佳实践,帮助开发者更高效地构建Web应用。
63 0
|
4月前
|
前端开发 API C++
在Ruby世界中寻找你的Web框架灵魂伴侣:Rails vs Sinatra
【8月更文挑战第31天】在Ruby的世界里,选择Web框架如同挑选衣物,需根据场合和需求。Rails与Sinatra是两大热门框架,前者以其“约定优于配置”理念和全面的功能成为企业级应用的首选;后者则以轻量级和灵活性著称,适用于快速原型开发和小规模应用。通过对比两者特性,如Rails的MVC架构与Sinatra的简洁API,我们可以看到它们各有所长。选择合适的框架,如同找到旅途中的最佳伙伴,让开发之路更加顺畅愉悦。这场探索之旅教会我们,没有绝对的好坏,只有最适合的选择。
47 0
|
4月前
|
安全 前端开发 数据安全/隐私保护
如何在Ruby on Rails中打造坚不可摧的OAuth认证机制
【8月更文挑战第31天】在构建现代Web应用时,认证与授权至关重要。本文介绍如何在Ruby on Rails中实现OAuth认证,通过使用`omniauth`和`devise` gems简化流程。首先安装并配置相关gem,接着在`User`模型中处理OAuth回调,最后设置路由及控制器完成登录流程。借助OAuth,用户可使用第三方服务安全地进行身份验证,提升应用安全性与用户体验。随着OAuth标准的演进,这一机制将在Rails项目中得到更广泛应用。
63 0
|
5月前
|
SQL 安全 数据库
Ruby on Rails 数据库迁移操作深度解析
【7月更文挑战第19天】Rails 的数据库迁移功能是一个强大的工具,它帮助开发者以版本控制的方式管理数据库结构的变更。通过遵循最佳实践,并合理利用 Rails 提供的迁移命令和方法,我们可以更加高效、安全地管理数据库结构,确保应用的稳定性和可扩展性。
|
6月前
|
前端开发 测试技术 数据库
Ruby on Rails:快速开发Web应用的秘密
【6月更文挑战第9天】Ruby on Rails,一款基于Ruby的Web开发框架,以其高效、简洁和强大备受青睐。通过“约定优于配置”减少配置工作,内置丰富功能库加速开发,如路由、数据库访问。活跃的社区和海量资源提供支持,MVC架构与RESTful设计确保代码清晰可扩展。高效的数据库迁移和测试工具保证质量。Rails是快速构建Web应用的理想选择,未来将持续影响Web开发领域。
|
7月前
|
开发框架 安全 前端开发
使用Ruby on Rails进行快速Web开发
【5月更文挑战第27天】Ruby on Rails是一款基于Ruby的高效Web开发框架,以其快速开发、简洁优雅和强大的社区支持著称。遵循“约定优于配置”,Rails简化了开发流程,通过MVC架构保持代码清晰。安装Ruby和Rails后,可使用命令行工具创建项目、定义模型、控制器和视图,配置路由,并运行测试。借助Gem扩展功能,优化性能和确保安全性,Rails是快速构建高质量Web应用的理想选择。
|
6月前
|
XML 机器学习/深度学习 移动开发
技术笔记:log4net使用详解
技术笔记:log4net使用详解
131 0
|
7月前
|
监控 数据可视化 前端开发
使用Ruby on Rails构建的员工上网行为监控Web应用
我们开发了一款基于Ruby on Rails的员工上网行为监控Web应用,帮助企业保护数据安全和确保员工生产力。该应用利用Rails的MVC架构和Active Record管理数据库,通过网络代理和JavaScript追踪员工网络活动。数据收集后,应用进行分析和可视化,以便识别异常行为。此外,借助Rails的后台任务和Sidekiq gem,实现数据自动化处理和定时更新,为公司提供实时监控反馈。
325 2