跳到主要內容

發表文章

目前顯示的是 11月, 2013的文章

04 Ruby on Rails 使用者認證機制

Getting Started with Rails 04 Ruby on Rails 使用者認證機制 每個網站幾乎都有使用者認證機制, Ruby on Rails 已經把這樣的機制做成套件了,而且每個 Ruby on Rails 的教學網站都有教怎麼做,所以我們也來依樣畫葫蘆一下這個使用者認證機制 -- devise 。 1.      引入 devise 套件 廢話依舊不多說,直接 step by step 跟我一起這樣做吧。 1.       修改 Gemfile $vi Gemfile 加入 devise 套件 Source ‘https://rubygems.org’ gem ‘devise’ 2.       透過 rails g 指令將 devise 套件安裝好 $rails g devise:install $rails g devise User $rake db:migrate 3.       在 /views/comments/ 中建立 _usr_signin_bar.erb $vi /views/comments/ _usr_signin_bar.erb 4.       最後修改 /views/layouts/application.html.erb 加上 <%= render :partial => “comments/user_signin_bar” %> 5.       驗證測試 01 用Ruby on Rails純手工打造一個包含CRUD的RESTful應用程式 02 用Ruby on Rails純手工打造一個具從屬關係的[討論區]   (1) 03 用Ruby on Rails純手工打造一個具從屬關係的[討論區] (2) 04 Ruby on Rails 使用者認證機制

03 用Ruby on Rails純手工打造一個具從屬關係的[討論區] (2)

Getting Started with Rails 用 Ruby on Rails 純手工打造一個具從屬關係的 [ 討論區 ] (2) 我們很有耐心的把一個討論區的雛型建構出來了,但是這個討論區的程式碼其實可以再有效率的精簡,這個章節要討論的就是 重構 ,讓重複的程式碼簡化,程式設計師的時間很寶貴的不要做相同的事。 1.      重構 建構完成一個功能重新檢視會發現重複性質的部分其實滿多的,而且我們的城市可以再精簡一點,一方面變得好看一點、也可以變得好維護一些,當然慢慢的形成精簡化的思考模式後,將來會很直覺的以模組化的方式來開發系統了。 首先利用的就是 render 方法。 下面的語法指的是在檔案中,調用與原 view 路徑相同的 _form.html.erb 檔案。 <%= render ‘form’ %> 舉例來說,如果在 /views/posts/ 資料夾中有 edit.html.erb 與 _PostList.html.erb 兩個檔案,在 edit.html.erb 中要 調用 _PostList.html.erb 做法如下。 <%= render ‘ PostListb ’ %> 好了,說明完後,接下來就可以實作了。 1.       檢視 /views/posts/new.html.erb 與 /views/posts/edit.html.erb 原 /views/posts/new.html.erb 檔案內容為: 原 /views/posts/edit.html.erb 檔案內容為: 可以發現 /views/posts/new.html.erb 檔案內容第 3~8 行與 /views/posts/edit.html.erb 檔案內容第 3~15 行作用相同,所以我們將相同部分獨立出來製作成一個新的檔案 _ePostList.html.erb 2.       修改 /views/posts/new.html.erb 3.       修改 /views/posts/edit.html.erb

02 用Ruby on Rails純手工打造一個具從屬關係的[討論區] (1)

Getting Started with Rails 用 Ruby on Rails 純手工打造一個具從屬關係的 [ 討論區 ] 在上一個範例中已經可以用純手工成功的完成簡易的 CRUD 應用程式,接下來要透過打造一個複雜一點的應用程式 [ 討論區 ] ,來練習具有從屬關係的資料結構,也順便練一練 CRUD ,一定要透過不斷練習讓 CRUD 變得很自然。 討論區的結構中有許多 Po 文 (Post) ,每個 Po 文會有許多評論 (Comment) ,這樣的從屬關係非常適合當成範例來說明,所以我們的資料結構如下圖, Comment 透過 post_id 與 post 做關聯。 1.      has_many 與 belongs_to 的 convention 上面這樣的結構我們可以說一個 post 可以具有 has many 的 comment 關係,而 comment 與 post 有著 belongs to 的關係。 l           has_one l           has_many l           belongs_to l           has_many :through 好了,說明完我們的目標結構後,接下來就可以實作了。 1.       建立一個專案 $rails new sample042 $cd sample042 2.       建立一個名為 post 的 model ,其中包含 name, title 與 content 三個欄位 $rails g model post name:string title:sting content:text $rake db:migrate 完成後可以在 sample042/db/migrate/20131101062711_create_posts.rb 看到: 3.       建立一個名為 posts 的 controller $rails g controller posts 4.       修改 /config/routes.rb