2016年6月5日 星期日

[ROR] 02-建立資料庫及頁面

個人的學習紀錄,如果有問題請自行上網解決。

產生資料庫
rails g model user userId:string userPaw: string
  欄位: name    屬性: string
  欄位: phone    屬性: string
  上面的指令 只是建立執行的檔案(請到db/migratr)尋找。
rake db:migrate
  這行才是把上面的資料 寫到資料庫。

如果要異動資料表
Rails g model AddShowToUser  pname:string
如果要詳細異動 可以到 db/migrate裡面 找剛剛創建的檔案
同樣也需要  rake db:migrate


產生一個 controller
rails g controller user index
controller: user    view: index

伺服器啟動
  rails s


在這邊,因為不瞭解 route 設定 所以 打網址都會發生錯誤(Routing Error)

 所以請到 config/routes.rb 做設定。

其他錯誤
   NoMethodError : 代表語法可能有問題,可以部份 keyword 打錯之類的。

ActiveModel : forbiddenattributeserror
為了安全性考量,不允許資料直接寫入,所以必須要 Strong Parameters
來預防。
def create
  @user = User.create(user_params)
end

def user_params
    params.require(:user).permit(:name, :email)
end

當初不瞭解 ror 安全性問題,所以在這邊卡一些時間。

參考網址: https://ihower.tw/rails4/security.html



[ROR] 01-建立全新的網站

個人的學習紀錄,如果有問題請自行上網解決。
因為 我在Virtual Box底下操作,所以 在我建立的網站 我都是設定最高權限。
如果要開始在外面架設,請小心權限問題。
網站路徑: var/Project 底下。Project是自己新開的資料夾。
ror 的網站都在放在 Project 底下。
rails new blog2 -d mysql
   -d mysql是為了指定使用MySql ,沒有補上這段會變成使用sqlite

網站的資料庫設定:database.yml
如果沒有安裝mysql2 ,要執行
# MySQL.  Versions 5.0+ are recommended.
# Install the MYSQL driver
#   gem install mysql2
# Ensure the MySQL gem is defined in your Gemfile
#   gem 'mysql2'

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  host: localhost
  username: 自己的帳號
  password: 自己的密碼
  socket: /var/run/mysqld/mysqld.sock

development:
  <<: *default
  database: blog2_development
test:
  <<: *default
  database: blog2_test

production:
  <<: *default
  database: blog2_production
  username: blog2

  password: <%= ENV['BLOG2_DATABASE_PASSWORD'] %>