2013年12月9日 星期一

[ROR] 後台建立

目標:產生一個後台在 Heroku

讓同事能申請帳號,然後並手動加入admin的tag

在後台開一個admin的資料區塊,可以顯示同事上次替"神~清單"設定的簡易後台。





  1.  ihower 的方式設定一個新的 ROR專案

    gem 加入
    # heroku 要的
    gem 'rails_12factor', group: :production

    # 使用者認證
    gem 'devise'

    執行 bundle install
  2. 產生一個簡單的首頁   (ref)

    rails g controller welcome

    加入 routes.rb
    resources :welcome
    root :to => 'welcome#index'

    加入 def index

    加入 index.html.erb

    刪除 public index.html
  3. 加 devise 相關的設定   (ref)

    rails g devise:install

    rails g devise user

    rails generate devise:views

    bundle exec rake db:migrate
  4. 加入一個admin的工作區塊  (ref)

    rails g controller admin::lists

    namespace :admin do
       resources :lists
    end

    在 ListsController 下加入
    before_filter :authenticate_user!

    在welcome/index.html.erb 加入連結 <%= link_to 'lists', admin_lists_path %>
  5. 修改 layouts/application.html.erb

    加入 <%= yield(:head) %> 在 head
    加入 <%= content_for?(:title) ? yield(:title) : "App_Name" %> 在header

    (目的是為了讓其他樣板好使用)
  6. 製作 views

    在 views/lists 中加入 _admin_login.html.erb

    在 views/lists/index.html.erb 中加入

    <%= render :partial => "admin_login" %>  來顯示登入登出選項

    加入parse javascript
    <%= content_for :head do %>
       
    <% end %>

    然後在加入必要的code
  7. 在 app/assets/stylesheets 放入要使用的 css 檔案
  8. (未完成)加入帳號權限
  9. 上傳Heroku

    建立git 區塊 git init
    add gitignore

    heroku create (他會在網站上自己建立) 然後用 git config -e  (可以改他的remote的位置)

    Heroku 不支援 sqlite3  要改用 pg

    1. 修改 Gemfile
        因為我本機端還不是很清楚怎樣用pg 所以改成

    group :production, :test do
      gem 'pg'
    end
    group :development do
      gem 'sqlite3'
    end


    2. 修改 database.yml
    production:
      adapter: postgresql
      encoding: unicode
      database: xxxxxxxxxxxx
      pool: 5
      username: xxxxxxxxxxxx
      password:
    

      database & username 可以在heroku網站上看到
      PS. db的database 以及帳密主要在 heroku console設定 參考

    執行 git push heroku master

    執行 heroku run rake db:migrate

    PS. gitignore  是否要把 initializers 給忽略掉? 可能要叫 heroku 自己產生(如果不傳上去就化就沒辦法用....這點我還不清楚)

沒有留言:

張貼留言