標籤:style blog http io os 使用 sp java for
1. 建立工程
rails new blog
2.查看下檔案結構
tree
輸出如下,請留意紅圈中的部分。
Gemfile, 用來管理應用程式的gems, 有點類似於python的包,有專門的網站來尋找gems: https://rubygems.org/
app,( application)這將會是你主要花精力的地方,
app/assets ,這個下面放的是圖片,指令碼,樣式等靜態檔案。
app/controllers, app/models, app/views , 這三個就是所謂的MVC中的C,M,V
config/routes.rb, 這個有點類似於django中的url檔案,配置url與controller的actions之間的對應關係。
db/seeds.rb, 資料庫的建立和遷移(migration)檔案所在地。
3. 添加一個名為posts的controller。建立控制器
按照約定:controller需要用複數表述,首先進入到工程目錄,然後建立controller,如下
cd blograils g controller posts
遇到錯誤:
/usr/local/rvm/gems/ruby-2.1.5/gems/execjs-2.2.2/lib/execjs/runtimes.rb:51:in `autodetect‘: Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
報錯原因:把 CoffeeScript 編譯成 JavaScript 需要 JavaScript 運行時,如果沒有運行時,會報錯,提示沒有 execjs。Mac OS X 和 Windows 一般都提供了 JavaScript 運行時。Rails 產生的 Gemfile 中,安裝 therubyracer gem 的代碼被注釋掉了,如果需要使用這個 gem,請把前面的注釋去掉。在 JRuby 中推薦使用 therubyracer。在 JRuby 中產生的 Gemfile 已經包含了這個 gem。所有支援的運行時參見 ExecJS。
編輯 blog/Gemfile 檔案,取消注釋,如下
gem ‘therubyracer‘, platforms: :ruby#enable it
然後運行 sudo bindle install 安裝依賴項。或者直接
gem install therubyracer
gem相當於python的easy_install。
再來一次產生controller,正常輸出如下:
create app/controllers/posts_controller.rb invoke erb create app/views/posts invoke test_unit create test/controllers/posts_controller_test.rb invoke helper create app/helpers/posts_helper.rb invoke test_unit create test/helpers/posts_helper_test.rb invoke assets invoke coffee create app/assets/javascripts/posts.js.coffee invoke scss create app/assets/stylesheets/posts.css.scss
添加動作action
編輯app/controllers/posts_controller.rb檔案,添加index動作(動作可以理解為頁面),這個是訪問posts/路徑的預設頁面,如下:
class PostsController < ApplicationController def index endend
添加view
定義了動作,就等於有了一個index頁,接下來,需要指定這個頁咋渲染,在app/views/posts路徑下面建立一個 index.html.erb (預設與動作相同的名字來命名views, erb 指的是 embed ruby, 在這個檔案裡面可以使用html/js/css/embed ruby)。
編輯內容如下:
<h1>hello world!</h1><p>welcome to tommy‘s blog</p>
添加路由映射
編輯檔案:config/routes.rb檔案,添加如下路由映射:
Rails.application.routes.draw do resources :posts
運行服務
接下來運行類比伺服器:
rails s
然後可以訪問路徑: http://localhost:3000/posts 看看輸出。如:
轉載請註明本文來自: http://www.cnblogs.com/Tommy-Yu/p/4140273.html,謝謝!
[ruby on rails] 跟我學之HelloWorld