[ruby on rails] 跟我學之HelloWorld

來源:互聯網
上載者:User

標籤: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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.