Rails First Blood

Stella981
• 阅读 433
==intro==
Ruby on Rails。

Rails是一套網站開發框架幫助你建立網站應用程式,它不是程式語言。

執行效能是絕對比不上靜態語言的;沒有編譯期可以檢查型別錯誤

單元測試;TDD(Test-driven development)測試驅動開發等敏捷最佳實務。
http://rubyconf2008.confreaks.com/matzs-keynote.html
http://confreaks.net/videos/159-rubyconf2009-keynote-address
http://confreaks.net/videos/11-mwrc2010-ruby124c41


==dev env==
Ruby 1.9.3以上版本或JRuby
sqlite -> MySQL/PostgreSQL
Ruby on Rails
(apache、nginx)

ENCODE:UTF-8,無BOM(byte-order mark)表頭

===ENV ON Ubuntu 14.04===
sudo apt-get update
sudo apt-get upgrade

sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g  libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev
wget https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.gz
tar xf ruby-2.2.2.tar.gz
cd ruby-2.2.2/
 ./configure
 make
 sudo make install
ruby -v

#gem source change
gem sources -l
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/

sudo gem install rails --no-ri --no-rdoc

#RubyGems是Ruby的套件管理系統
gem -v 告訴你 RubyGems 的版本
gem update --system 升級RubyGems的版本
gem install gem_name 安裝某個套件
 ;no RDoc和ri文件 
      gem install gem_name --no-ri --no-rdoc  
     add “gem: --no-ri --no-rdoc”  to “~/.gemrc” file
gem list 列出安裝的套件
gem update gem_name 更新最新版本
gem update 更新所有你安裝的Gems
gem install -v x.x.x gemname 安裝特定版本
gem uninstall gem_name 反安裝

===rails start===
CRUD指的是Create(新增)、Read(讀取)、Update(更新)、Delete(刪除)四種操作資料的基本方式。

rails的指令可以初始一個Rails專案目錄。

$ mkdir projects
$ cd projects
$ rails new demo --skip-test-unit  
    --skip-bundle   加上该参数,bundle install 再也不会从rubygems.org 下载文件了。
$ cd demo
$ bundle config mirror.https://rubygems.org https://ruby.taobao.org/    ;更改ruby bundle
$ bundle install

#每次有修改Gemfile這個檔案都需要重新執行bundle
#dev除了修改config或vender目錄下的檔案需要重新啟動其它修改都不需要
#production任何程式的修改都需要重启服务器
$ cd projects/demo
$ bin/rails server

visti by http://LOCALHOST:3000




==OTHERS==
====檔案/目錄    用途====
Gemfile    設定Rails應用程式會使用哪些Gems套件
README    專案說明:你可以用來告訴其他人你的應用程式是做什麼用的,如何使用等等。
Rakefile    用來載入可以被命令列執行的一些Rake任務
app/    放Controllers、Models和Views檔案,接下來的內容主要都在這個目錄。
config/    應用程式設定檔、路由規則、資料庫設定等等
config.ru    用來啟動應用程式的Rack伺服器設定檔
db/    資料庫的結構綱要
doc/    用來放你的文件
lib/    放一些自定的Module和類別檔案
log/    應用程式的Log記錄檔
public/    唯一可以在網路上看到的目錄,這是你的圖檔、JavaScript、CSS和其他靜態檔案擺放的地方
bin/    放rails這個指令和放其他的script指令
test/    單元測試、fixtures及整合測試等程式
tmp/    暫時性的檔案
vendor/    用來放第三方程式碼外掛的目錄

如果啟動伺服器時出現Could not find a JavaScript runtime的錯誤,請編輯Gemfile這個檔案加上一行gem 'therubyracer',輸入bundle install安裝這個套件,然後再啟動一次rails server即可。這是因為在Ubuntu作業系統上預設沒有任何JavaScript直譯器可以給Rails使用。你可以裝Node.js或是安裝therubyracer這個Ruby套件來獲得JavaScript直譯器。

在Controller中,一個公開函式(public method)就代表一個Action,一個Action對應一個HTTP的請求和回應。
Ruby使用#进行单行注释。
多行注释,
=begin
    ...
=end


====设置首页====
将首页设置为welcome#index
---config/routes.rb
  root :to => "welcome#index"

==== 数据库====
Rails系统默认使用sqlite,一般不会用在生产中,但是使用在测试中是十分好用的。
配置文件是config/database.yml,他有三种执行环境test,development,production。
默认可以不做配置修改直接使用。

$ bin/rake db:create     ;用来建立空的资料库

===curd程式===
Rails的scaffold 能产生一组MVC,做展示和学习之用。
$ bin/rails g scaffold person name:string bio:text birthday:date

实际多用scaffold产生的MV,自己写出C来使用。
database migration 资料库移动,Rails使用rake指令來執行Migrations。
Migration的檔名中包含了Timestamp(時間戳章),用來確保它們可以依照建立時間依序執行。
点赞
收藏
评论区
推荐文章
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
雷厉风行 雷厉风行
1年前
Mac用户必备的Ruby开发工具,RubyMine 2023新版 永久激活码
RubyMine2023forMac是JetBrains公司开发的一款Ruby编程语言开发工具,支持多种Ruby开发环境,包括Rails、Sinatra等。该软件为Ruby开发人员提供了一站式的集成开发环境(IDE),可帮助他们更快地、更高效地开发代码。
Stella981 Stella981
2年前
Kindeditor and cKediter for Ruby on Rails
KindeditorforRubyonRails https://github.com/Macrow/rails\_kindeditor(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2FMa
Wesley13 Wesley13
2年前
NUC972学习历程之NUWRITER使用说明以及烧录模式的说明
3.1簡介NuWriter工具能幫助使用者透過USBISP模式,將Image檔案放入儲存體中,例如:SPIFlash設備或NANDFlash設備.3.2驅動程式安裝NuWriter必須在電腦中安裝VCOM驅動程式才能使用NuWriter工具.請依據下列步驟來安裝VCOM驅動程式:1\.將電腦與NUC97
Stella981 Stella981
2年前
Stella981 Stella981
2年前
Ruby on Rails 之旅(七)—— Ruby on Rails 入门(5)
接下来我们一起学习一下respond\_to字面意思是响应给。。。我们可以理解为,你要什么格式。以往一样的操作返回不同的格式,我们大多会这样处理:defshow_html@usersUser.find(:all)enddefshow_xml@usersUser.find(:all)
Stella981 Stella981
2年前
Ruby On Rails 路由配置简述
转自http://my.oschina.net/VincentJiang/blog/1705431、认识Rails路由配置文件:routes.rb在Rails应用程序中,routes.rb文件管理着所有用户从客户端向服务器发送的请求,该如何转化?routes.rb通过分析URL,来确定要调用哪个控
Wesley13 Wesley13
2年前
Java练习题_Map集合,遍历车站编号及名称、计算地铁票价。
【1】将以下车站对应关系的数据存储到map集合中,key:表示站编号,value:表示站名,并遍历打印(可以不按顺序打印):【2】计算地铁票价规则:总行程3站内(包含3站)收费3元,3站以上但不超过5站(包含5站)的收费4元,5站以上的,在4元的基础上,每多1站增加2元,10元封顶;需要对键盘录入的上车站和
Stella981 Stella981
2年前
RxSwift學習教程之基礎篇
前言我們在iOS開發過程中,幾乎無時無刻都要面對異步事件的處理。例如,按鍵點擊、數據保存、、音頻後臺播放、交互動畫展示。這些事件並不具備特定時序性,甚至它們可能同時發生。雖然Apple提供了通知、代理、GCD、閉包等異步機制,但是這些機制缺乏一個統一的抽象表述。另外,這些機制在處理共享的可變數據或狀態時不夠清晰簡練。當然,這並不是說編寫優雅的
子桓 子桓
1年前
Ruby代码编辑器 RubyMine 2023 mac
RubyMine2023mac一款适用于各种Ruby项目的智能IDE,具有智能代码编辑器,专为高效开发而设计。1.智能和简单的编码代码完成为Ruby和RAIls,JavaScript和CoffeeScript,ERB和HAML,CSS,Sass和Less等