ECサイト作成備忘録
gem
bcrypt(パスワードの暗号化)
gemfileからコメントアウト
→password_digestの項目に追加していく(databaseにカラムを追加し
ておくこと)→modelにhas_secure_passwordの宣言を
model
validate
precense 空欄なし
validates_confirmation_of 一致
attr_accessible と attr_accessor の違い
→attr_accessor は Ruby のメソッドで、ゲッターとセッターをつくる。attr_accessible は Railsのメソッドで、モデルのどの属性をアクセス可能にするかをRailsに伝える。マスアサインメント(たくさんのアクセス)の脆弱性から守るために必要。
viewファイルからnewメソッドで保存してもnilがデータベースにかえってしまう場合の確認
→attr_accessible に変更
attr_accessor
→これで、データベースのカラム要素を指定しておかないとデータベースへの書き込みができない
※あくまで、個人的対処法
controller
userの一通りの登録&編集方法
def → new, all(index), edit, create, destroy
【重要】createメソッドについて
→なんで、User.new(user_params) なの? or User.new(params[:user])
→じゃないと、フォームから送られたデータの保存がデータベースにできない(どこに保存すればいいか指定ができない)※ここでは、params[:users] ではなく、 params[:user]の単一系にしないとダメ
→これは、update でも同じなので注意。
すべてのコントローラーでセッションの概念導入
→application_controller.rbに include でセッションヘルパーの導入
sign in
rails でsign inを実装する方法
→http://qiita.com/kidach1/items/ebdb4b29336955903029
remember_tokenを用いてセッションの管理を行う
route
link について '/'を入れるかどうか
→'/'を入れていないとたとえば、users/11ページからリンクする場合、/users/home へとリンクされてしまうので、'/'を link_to の中に入れること
パラメーターの受け渡し
viewファイルからパラメーターを受け渡す
→アイテムの個数を持っていくときに必要
edit アクションなどにパラメータをもって行くためのlink_toの書きかた
→<%= link_to '***(リンクの名前)', :controller => '', :action => '', :id => ** %>→ここの:idの記載で気を付けることは(特に特定のidが渡ってきていないindexなど)は、eachやfor文で回しているときの、代入変数.要素 の書き方じゃないとうまくいかない
cart機能実装について
商品追加のメソッドの改良です。
現在のカートの商品に重複があるかどうかチェックし、あった場合は数量をインクリメント、なかったらカートに新しい商品として放り込む感じのメソッドです。(引用:http://syossan.hateblo.jp/entry/20100723/1279866371)
session
ActionDispatch::Cookies::CookieOverflow エラーについて
→この場合、sessionに過度の書き込み(一時保存)をしていることが
原因(※4KB以上の情報でアウト)→rake db:sessions:crate→migrate
→config/initialize/session_store.rbの[プロジェクト名]::Application.config.session_store :active_record_storeを有効化