精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

jQuery Mobile開發移動Web應用代碼分析:Rails設置篇

原創
移動開發
本文是使用jQuery Mobile和Rails開發一款問卷或調查應用程序的教程系列的第一個部分。該系列將介紹如何開發一款與移動設備兼容的Web應用程序,好讓用戶以一種類似向導的方式回答一系列問題。

[[34725]]

【51CTO譯文】jQuery Mobile含有幾項直接可以使用的實用特性,用于讓我們開發的Web應用程序可以在眾多移動設備上運行。在大多數情況下,jQuery Mobile隨帶的基本模板和CSS主題足以滿足需要。然而,由于所有模板是用CSS來創建的,所以我們很容易定制我們網站的外觀感覺。

[[34726]]

51CTO提供這個應用CSS原文件的下載地址,大家把應用下載下來對照應用進行分析

開發移動Web應用程序時,jQuery Mobile是一種理想的框架,這有諸多理由,包括如下:

1、由于該框架建立在jQuery上,因而對于在網上用過jQuery的人來說比較容易上手。

2、它目前與許多主要的平臺兼容,包括iOS、Android、BlackBerry、Palm WebOS、諾基亞/Symbian和Windows Mobile等。

3、包含的庫壓縮后大小約為12k;就其提供的功能而言非常輕便。

至于后端,我們會使用隨帶幾個gem的Rails 3,包括Typus。

先不妨創建一個新的rails應用程序:

  1. rails new . 

確保你已經安裝了***版本的rails gem。如果你在開發的應用程序要求使用Rails 2,建議你了解和安裝RVM(Ruby版本管理器)。這樣可以避免可能由gem版本問題引起的許多頭痛問題。

接下來,我們把gem添加到我們的Gemfile文件:

  1. source 'http://rubygems.org' 
  2.  
  3. gem 'rails', '3.0.7' 
  4.  
  5. gem 'sqlite3-ruby', :require => 'sqlite3' 
  6.  
  7. gem 'jquery-rails' 
  8.  
  9. # Admin 
  10.  
  11. gem 'typus', :git => 'http://github.com/fesplugas/typus.git' 
  12.  
  13. gem 'acts_as_list' 

正如你所見,我們將使用Rails 3.0.7,因為它是截至截稿時***的穩定版Rails。我們還將安裝jquery-rails這個gem,覆蓋Rails隨帶的默認的Prototype JavaScript庫。由于jQueryMobile顯然需要jQuery基本庫,因而我們其實沒有理由將包含的Prototype庫留下來。

至于admin部分,我們會安裝Typus gem和acts_as_list。只要稍加配置,Typus就會提供整個后端,用于管理我們為這次調查創建的問題。Acts as list可與Typus無縫地協同運行,讓我們很容易控制問題的順序。

現在我們可以運行捆綁工具(bundler),安裝我們的gem。

  1. bundle install 

jQuery gem和Typus gem都有生成器,其作用是實際上讓gem自行安裝。在app目錄下時,可通過運行下列命令來做到這一點:

  1. rails generate jquery:install 
  2.  
  3. rails generate typus 

默認情況下,Typus不隨帶任何一種認證門(authentication gate)。由于這幾乎如同長驅直入數據庫,我們的***步是應該確保其安全。確保安全的最簡單方法就是,添加基本HTTP認證。這顯然不是特別安全,但是就我們這個教程而言,已足夠安全。為了實現這一步,我們需要往config/initializers/typus.rb文件添加下列幾行:

  1. config.admin_title = "survey" 
  2.  
  3. config.authentication = :http_basic 
  4.  
  5. config.username = "admin" 
  6.  
  7. config.password = "pass" 

當用戶訪問/admin URL時,這會提示用戶輸入用戶名和密碼。

鑒于我們的應用程序已完全設置好,就可以開始生成資源和數據庫模式。我們可以使用Rails的簡略方法,即直接從命令行,使用下列命令來做到這一點:

  1. rails generate resource question question:string position:integer 
  2.  
  3. rails generate resource choice choice:string question_id:integer 
  4.  
  5. rails generate resource answer question_id:integer choice_id:integer 
  6.  
  7. rake db:migrate 

現在數據庫中有3個表。一個表存放我們向用戶提出的問題。每個問題會有多個選項,每個答案將是一條記錄,存儲了問題和選項的ID組合。由于選項只屬于一個問題,答案表中的question_id字段其實沒有必要。我們把它放在這里作為簡易的訪問器,用于簡化查詢,比如獲取某個問題的答案數量。問題表中的position字段讓我們可以指定問題在調查中出現的順序。

為了給我們的模型添加這些關系,我們將按下列方法來進行改動:

  1. /app/models/question.rb 
  2.  
  3. class Question < ActiveRecord::Base 
  4.  
  5. acts_as_list 
  6.  
  7. has_many :choices 
  8.  
  9. end 

你從上面可以看到,我們給該模型添加了acts_as_list插件,那樣我們就能改變每一個問題在調查中出現的順序。

  1. /app/models/choice.rb 
  2.  
  3. class Choice < ActiveRecord::Base 
  4.  
  5. belongs_to :question 
  6.  
  7. end 
  8.  
  9. /app/models/answer.rb 
  10.  
  11. class Answer < ActiveRecord::Base 
  12.  
  13. belongs_to :question 
  14.  
  15. belongs_to :choice 
  16.  
  17. end 

好了!鑒于資源和數據庫表已生成,我們需要為Typus創建存放在admin文件夾下的一些控制器。為此,我們運行下列命令:

  1. rails generate controller admin/answers 
  2.  
  3. rails generate controller admin/choices 
  4.  
  5. rails generate controller admin/questions 

接下來,我們需要更改每一個控制器文件里面的頭幾行,讓控制器從ResourcesController繼承過來,而不是從基本ApplicationController繼承過來。在Typus中,一旦我們從ResourcesController繼承過來,就直接獲得了一些強大的CRUD(創建、讀取、更新和刪除)功能,沒必要進一步編寫任何代碼。下面是必要的替換操作:

  1. /app/controllers/admin/answers_controller.rb 
  2.  
  3. replace: 
  4.  
  5. class Admin::AnswersController < ApplicationController 
  6.  
  7. with: 
  8.  
  9. class Admin::AnswersController < Admin::ResourcesController 
  10.  
  11. /app/controllers/admin/choices_controller.rb 
  12.  
  13. replace: 
  14.  
  15. class Admin::ChoicesController < ApplicationController 
  16.  
  17. with: 
  18.  
  19. class Admin::ChoicesController < Admin::ResourcesController 
  20.  
  21. /app/controllers/admin/questions_controller.rb 
  22.  
  23. replace: 
  24.  
  25. class Admin::QuestionsController < ApplicationController 
  26.  
  27. with: 
  28.  
  29. class Admin::QuestionsController < Admin::ResourcesController 

差不多完成了!現在我們要為Typus配置文件添加一些配置語句。要是config/typus目錄下有其他任何yaml文件,我們可以刪除,因為它們沒有必要。我們運行生成器語句時,Typus可能會生成示例配置文件。我們不妨創建一個名為typus.yml的文件,位于config/typus目錄下。

首先,我們添加Choice模型的配置語句:

  1. Choice: 
  2.  
  3. fields: 
  4.  
  5. default: choice, question_id, question 
  6.  
  7. form: choice, question_id, question 
  8.  
  9. order_by: 
  10.  
  11. relationships: question 
  12.  
  13. filters: created_at, question 
  14.  
  15. search: 
  16.  
  17. application: survey 
  18.  
  19. Question: 
  20.  
  21. fields: 
  22.  
  23. default: question, position 
  24.  
  25. form: question 
  26.  
  27. order_by: position 
  28.  
  29. relationships: choices 
  30.  
  31. filters: created_at 
  32.  
  33. search: question 
  34.  
  35. application: survey 

不妨逐一解釋:

  1. Choice: 
  2.  
  3. fields: 
  4.  
  5. default: choice, question_id, question 
  6.  
  7. form: choice, question_id, question 

通過短短幾行配置,Typus就能為我們創建許多后端功能。首先,我們將指定允許編輯的字段。Field(字段)定義的default(默認)部分將允許我們設定哪些字段會在列表中顯示。在本例中,我們允許管理員可以在create和update表單中設定同樣這組字段。這在字段定義的form(表單)部分進行了指定。

  1. order_by: 

默認情況下,我們的選項將按照創建選項的順序來排序,所以根本不需要為order_by指定什么。

  1. relationships: question 

每個選項屬于一個問題,所以我們可以定義問題與選項模型的關系。Typus會自動設計我們的表單,以說明數據記錄彼此之間有著怎樣的關系。

  1. filters: created_at, question 

只要在filter(過濾器)定義中列出字段及/或關系,就可以在typus中定義過濾器。根據字段類型,typus會在后端創建過濾器功能。以created_at為例,這將是指定日期的一組下拉框。至于question,這將是列出存儲在數據庫中所有問題的下拉框。

  1. search: 
  2.  
  3. application: survey 

就這個模型而言,search(搜索)定義對我們沒什么用處,因為我們不可能搜索任何選項。不過我們要是在這里指定了字段, typus會提供一個搜索框,那樣我們就能按照搜索詞語,過濾存儲在數據庫中的記錄。這里的application(應用程序)定義是應用程序的名稱,我們稱之為“survey”。

***一個清理步驟是,我們刪除文件public/index.html,它會阻止我們的默認路由。

現在我們可以開啟服務器了:

  1. rails s 

用瀏覽器訪問下列URL,即可測試我們新創建的admin:

  1. http://localhost:3000/admin 

 

責任編輯:佚名 來源: 51CTO
相關推薦

2011-12-12 10:08:39

jQuery MobiHTML5

2011-07-08 15:27:03

jQuery Mobi

2011-09-05 10:49:14

Sencha ToucjQuery MobiHTML5

2011-09-05 13:45:25

jQuery MobiSencha Touc移動Web UI框架

2011-09-01 10:09:04

2011-03-01 09:23:47

移動Web應用開發成本

2013-11-28 09:38:04

移動開發jQuery Mobi

2012-03-27 14:34:07

Visual Stud微軟MVC

2010-08-13 08:59:58

Rails

2012-02-09 16:45:41

2011-07-21 15:37:40

jQuery MobiJQMJSON

2012-03-06 16:57:40

jQuery mobijQuery mobiframework

2014-06-19 10:26:15

Mobile AppWeb App

2014-09-18 10:43:32

jquery mobi

2010-08-16 08:49:25

jQuery MobijQuery

2012-04-09 15:15:48

國雙科技Mobile Diss

2016-04-25 10:07:18

jQuery代碼Web開發效率

2011-02-21 09:10:42

WebHTML 5JavaScript

2011-09-02 16:42:51

Sencha ToucWeb應用

2012-01-18 14:29:42

移動Web應用開發
點贊
收藏

51CTO技術棧公眾號

精品不卡在线| 久久精品国产96久久久香蕉| 日本wwww视频| 1024视频在线| 国产精品亚洲一区二区三区妖精| 久久免费视频在线| 国产精品国产三级国产专业不| 亚洲国产aⅴ精品一区二区三区| 91一区二区| 亚洲欧洲午夜| 国产亚洲精品日韩| 91亚洲一线产区二线产区| 涩涩涩在线视频| 亚洲三级电影网站| 欧美不卡在线一区二区三区| 99精品人妻无码专区在线视频区| 国产欧美一级| 久久亚洲精品成人| 波多野结衣a v在线| 欧洲精品99毛片免费高清观看| 欧美日韩加勒比精品一区| av不卡在线免费观看| 青青久草在线| 成人国产亚洲欧美成人综合网| 国产精品视频精品| 国产无人区码熟妇毛片多| 婷婷亚洲综合| 在线观看精品自拍私拍| 搡老熟女老女人一区二区| 国产精品中文| 欧美三区在线视频| 国产女女做受ⅹxx高潮| 国产丝袜在线播放| 亚洲色图在线播放| 亚洲精品国产精品国自产| 日韩电影免费| 成人毛片视频在线观看| 3d动漫精品啪啪一区二区三区免费 | 久久91超碰青草在哪里看| 午夜视频一区二区| 精品人妻人人做人人爽| 日韩免费啪啪| 亚洲国产精品高清| 日韩精品久久久免费观看 | av一区二区不卡| 97se亚洲综合| a天堂在线视频| 激情久久久久久久久久久久久久久久| 国产精品久久久久久久久久久久久 | 最新亚洲国产精品| 亚洲一级中文字幕| 台湾佬综合网| 日韩国产一区三区| avtt香蕉久久| 亚洲日本三级| 亚洲社区在线观看| 中文字幕 自拍| 欧美一区二区麻豆红桃视频| 亚洲片av在线| 五月婷婷婷婷婷| 欧州一区二区| 日韩网站免费观看高清| 亚洲欧美另类日本| 四季av在线一区二区三区 | 欧美卡一卡二| 樱花草国产18久久久久| 日本福利视频网站| 黄污视频在线观看| 午夜成人免费视频| 国产成人精品视频免费看| 蜜桃视频动漫在线播放| 色狠狠色狠狠综合| 国产又大又黄又猛| 精品国产不卡一区二区| 精品国产一区二区三区久久久蜜月 | 国产午夜精品一区二区三区嫩草 | 国产h在线观看| 中文字幕第一页久久| 国产精品av免费| 污污的网站在线看| 精品久久久一区二区| 亚洲视频在线a| 亚洲色图图片| 亚洲第一精品久久忘忧草社区| 最新在线黄色网址| 精品亚洲成人| 国产精品综合久久| 欧美系列一区二区| www.超碰97.com| 一区二区三区国产好| 亚洲精品720p| 国产三级精品三级观看| 精品不卡视频| 国产精品第10页| 精品毛片一区二区三区| 91丨porny丨中文| 一本一道久久a久久综合精品| 污的网站在线观看| 色老头久久综合| 一区二区三区人妻| 久久99精品久久久久久园产越南| 久久久精品欧美| av大全在线观看| 国模一区二区三区白浆| 久久爱av电影| 中文国产字幕在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 色婷婷一区二区三区在线观看| 欧美大胆视频| 美日韩精品免费视频| 国产精品久久久久久久久久精爆| 国产一区欧美日韩| 欧美日韩精品免费在线观看视频| 97caopor国产在线视频| 色成人在线视频| 国产精九九网站漫画| 日韩毛片视频| 日韩美女免费视频| 日本高清视频www| 亚洲日韩欧美一区二区在线| 四虎永久在线精品无码视频| 91成人短视频| 久久久国产一区二区三区| 麻豆精品久久久久久久99蜜桃| 国产suv精品一区二区三区| 亚洲一区在线免费| 欧美电影免费观看| 日韩国产高清视频在线| 久久亚洲成人av| 国精产品一区一区三区mba桃花| 欧美性xxxx69| 亚洲精品88| 亚洲国产毛片完整版| 欧美黄色一区二区三区| 国产一区二区福利| 一区不卡视频| 欧美性aaa| 中文字幕精品—区二区| 欧美人一级淫片a免费播放| 91网站在线观看视频| 久青草视频在线播放| 麻豆精品在线| 欧美猛交免费看| 国产精品人妻一区二区三区| 日本在线免费播放| 久久蜜臀中文字幕| 成熟丰满熟妇高潮xxxxx视频| 91九色鹿精品国产综合久久香蕉| 久久天天躁日日躁| 一区二区美女视频| 国产精品久久久久久久浪潮网站| 美女网站色免费| 日韩精品一区二区三区免费观影 | 乱亲女h秽乱长久久久| 欧美激情xxxx性bbbb| 国产福利免费视频| 一区二区视频在线| 久久性爱视频网站| 夜夜嗨av一区二区三区网站四季av| 成人欧美一区二区三区视频 | 性感美女一级片| 黄色成人av在线| 日本少妇高潮喷水xxxxxxx| 国产美女一区| 日韩欧美亚洲在线| 国产第一精品| 欧美成人激情视频| 蜜桃91麻豆精品一二三区| 亚洲国产一区二区三区 | 九色视频网站在线观看| 成人搞黄视频| 日韩一区二区三区xxxx| 国产三级漂亮女教师| 一区二区欧美精品| 亚洲天堂资源在线| 青草国产精品久久久久久| 亚洲一区二区三区乱码| 国产欧美视频在线| 久久久久久国产精品三级玉女聊斋 | caopen在线视频| 日韩欧美一级片| 久久久国产高清| 中文文精品字幕一区二区| 欧洲美女亚洲激情| 99伊人成综合| 视频一区二区三| 日本精品在线观看| 性欧美在线看片a免费观看| 免费在线视频一级不卡| 久久网站免费观看| 欧美成aaa人片免费看| 色一情一乱一区二区三区| 一本久久综合亚洲鲁鲁五月天 | 一个人看的视频www| 夜夜嗨av一区二区三区网站四季av| 欧美性xxxx69| 中文在线综合| 国产精品高潮在线| 日本无删减在线| 亚洲天堂男人天堂| 亚洲精品网站在线| 欧美日韩免费观看一区三区| 黄网站免费在线| 中文字幕av不卡| 丝袜熟女一区二区三区| 久久精品国产成人一区二区三区 | 理论片午夜视频在线观看| 日韩在线精品视频| 亚洲色大成网站www| 91精品国产综合久久久久久漫画| 日韩一区二区视频在线| 亚洲人被黑人高潮完整版| 极品人妻一区二区三区| 国产乱码精品一区二区三| 欧美亚洲日本在线观看| 亚洲高清av| 日本道在线视频| 成人精品电影| 麻豆av一区| 国产伦精品一区二区三区免费优势| 国产精品久久久久久亚洲影视| 91九色国产在线播放| 久久久成人精品视频| 成年午夜在线| 亚洲欧洲在线看| 亚洲欧美色视频| 精品久久一区二区三区| 国产精品国产一区二区三区四区 | 欧美激情欧美激情| 国产美女喷水视频| 成人一区在线看| 手机在线观看日韩av| 另类小说欧美激情| 三年中国国语在线播放免费| 国产欧美午夜| 亚洲午夜无码av毛片久久| 亚洲黄页一区| 分分操这里只有精品| 欧美日韩精品一本二本三本| 男女h黄动漫啪啪无遮挡软件| 欧美一级本道电影免费专区| 欧美日韩精品免费观看| 免费成人结看片| 日本一区二区三区四区在线观看| 日韩人体视频| 玛丽玛丽电影原版免费观看1977 | 欧美日韩精品一区| 色婷婷av一区二区三区丝袜美腿| 国产精品一区二区三区四区五区| 亚洲国产aⅴ精品一区二区| 亚洲xxx大片| 色妞ww精品视频7777| av一本久道久久波多野结衣| 91亚洲无吗| 国产在线精品日韩| 亚洲区小说区| 亚洲欧洲一区二区福利| 日韩精品一区二区久久| 黄色高清视频网站| 91精品高清| 免费人成自慰网站| 亚洲国产清纯| 中文字幕乱码人妻综合二区三区| 日本女人一区二区三区| 中文字幕精品一区二区三区在线| 国产一区二三区好的| 男人的天堂免费| 9l国产精品久久久久麻豆| 国精产品一区一区三区免费视频| 国产婷婷一区二区| 欧美性x x x| 一区二区三区精密机械公司| 日韩乱码一区二区| 欧洲在线/亚洲| a视频免费在线观看| 亚洲高清一二三区| 国产玉足榨精视频在线观看| 最好看的2019的中文字幕视频| jizz性欧美| 91精品国产色综合| 91九色综合| 99国精产品一二二线| 图片婷婷一区| 一区二区日本| 一区二区国产精品| 亚洲精品久久久久久宅男| 处破女av一区二区| 性欧美精品男男| 亚洲综合久久av| 久久亚洲精品石原莉奈 | 国产69精品久久久久777| 男人网站在线观看| 国产精品久久久久久久久图文区 | 精品国产丝袜高跟鞋 | 国产人妖一区| 国产精品综合久久久久久| 日韩a一区二区| 欧美在线一区视频| 韩国成人精品a∨在线观看| 欧美xxxxx精品| 中文字幕综合网| 亚洲s码欧洲m码国产av| 日韩欧美国产精品一区| 成人影视在线播放| 97精品视频在线观看| 中文字幕成人| 欧美精品久久久| 国产综合自拍| 日韩在线一区视频| 久久理论电影网| 国产一级片久久| 制服丝袜中文字幕亚洲| 天堂中文资源在线| 久久99国产综合精品女同| 国产成人77亚洲精品www| 精品国产第一页| 欧美人成在线| 911av视频| 国产精品入口麻豆九色| 天天操天天操天天操天天| 精品久久久久久久久久久久久久久| www.av在线播放| 国产成人精品久久二区二区91| 91成人午夜| 日韩视频 中文字幕| 蜜桃视频一区二区三区在线观看| 黄色短视频在线观看| 亚洲高清三级视频| www.国产视频| 久久综合网hezyo| 欧洲亚洲精品久久久久| 日韩免费av一区二区三区| 另类图片国产| www.色多多| 精品久久久久久久久久国产| 好吊色一区二区三区| 欧美成人久久久| 国产亚洲亚洲国产一二区| 综合一区中文字幕| 精品一区二区三区不卡| 性少妇xx生活| 欧美日韩一级片网站| 午夜国产福利在线| 国产日韩欧美另类| 99久久激情| 色18美女社区| 一区二区视频在线看| 亚洲AV无码精品自拍| 欧美精品福利在线| 果冻天美麻豆一区二区国产| 精品视频在线观看一区| av在线这里只有精品| 97超碰人人干| 亚洲女人天堂网| 国产成人精品亚洲日本在线观看| 日韩欧美亚洲区| 福利小视频在线观看| 亚洲片国产一区一级在线观看| 国产精欧美一区二区三区蓝颜男同| 久久久福利视频| 日韩电影在线一区二区三区| 国产一区第一页| 日韩三区在线观看| 波多野在线观看| 久久精品ww人人做人人爽| 久久影院亚洲| 性生交大片免费全黄| 日韩欧美国产综合在线一区二区三区 | 亚洲我射av| 黄色片免费在线观看视频| 99久久久免费精品国产一区二区| 日本一区二区三区精品| 在线视频免费一区二区| 精品一区二区三区中文字幕在线 | 国产极品美女高潮无套嗷嗷叫酒店| 亚洲国产成人精品女人久久久 | 麻豆天美蜜桃91| 亚洲精品一线二线三线| 中文字幕这里只有精品| 中文字幕久精品免| 东方aⅴ免费观看久久av| 亚洲成人第一网站| 欧美xxxx做受欧美.88| 林ゆな中文字幕一区二区| 九九热免费精品视频| 一区二区三区久久久| 男操女在线观看| 亚洲一区制服诱惑| 午夜影院日韩| 午夜精品一区二区三区视频| 精品国产一区二区三区久久影院 | 精品久久久久久综合日本| 日韩电影在线观看一区| 欧美日韩免费一区二区| 亚洲视频综合网| jizz国产精品| 日韩av片专区| 狠狠色狠狠色综合日日小说| 九七久久人人| 日本免费高清一区|