LoginSignup
1
0

More than 5 years have passed since last update.

ECサイト構築(途中)の備忘録

Posted at

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を有効化

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0