Fumitsuki's Magic Box

Keep calm and eat eight plates.

[Rails 學習筆記]善用namespace建立後台

Ruby & Rails

1 557d8eccacb4460443c77632b6eee0403a28ad29fd37163ddd056b76ee81517b

在寫blog的時候一直很苦惱要怎麼寫後台,
是要另外有一個叫backend的controller嗎?還是怎麼樣呢?

後來才知道原來有namespace這東西,覺得人間愉快(X)

所以廢話少說就開始吧!

route的部分

首先到 route.rb 加入:

namespace :admin do
    resources :articles
 end

這樣index的路徑就換變成 admin/articles 了,
可以用$ rake routes來看一下路徑長什麼樣子。

然後這邊要特別注意(大師提點的,不是我自己說的w),
盡量不要用admin、backend這種大家都想得到的名稱。
否則後台很容易被恐怖的大黑黑所攻陷。(黑黑最喜歡戳戳了(́◉◞౪◟◉‵))

當然,article的部分就是controller的名字,要叫posts...什麼的都可以。

Controller的部分

接下來是contorller的部分,這邊只要有基本的CRUD加上認證就OK了。
(其他功能就自己盡情加吧,那就跟本文無關了w)
可以善用command line來建立controller,像是:$ rails g controller admin/articles
這個時候可以發現多出了 app/controllers/admin/articles_controller.rb 這個檔案,
到這裡後台的路徑就差不多了。

使用者認證

這個部分看是多使用者還是單一使用者,
如果是單一使用者的話可以用簡單的 http basic authenticate 來處理。

在剛剛的 admin/articles_controller.rb 中加入:

http_basic_authenticate_with name: "your_name", password: "your_password"

這邊的your_nameyour_password就自由填入自訂的帳號密碼吧!
多使用者的話,可以用 devise 這個方便好用的套件。

首先,在 Gemfile 中加入:

gem 'devise'

然後在命令列輸入$ bundle就可以安裝套件了。
接著呢,再命令列輸入$ rails g devise:install來產生devise設定檔
再輸入$ rails g devise user產生user model,然後便忘了rake db:migrate來migrate它。Devise也提供view的樣板可以使用,在命令列輸入rails generate devise:views就可以自動產生了。

除此之外,
其實也有後台的套件可以用,像說rails_admin之類的,可以參考看看呢。

backend, namespace, devise, rails

Comments

There are no comments.

Create a comment: