ihatov08 blog

プログラミング初心者だけどRailsとSwiftマスターします

2016-03-01から1ヶ月間の記事一覧

クッキーとセッションの違い

クッキー → ブラウザが保持するキーと値 セッション → webサーバーが保持するキーと値

Railsのアセット・パイプライン

アセットとは「資産」の意味で、CSS、JavaScript、画像といったファイルのことを指す。 アセット・パイプラインとは次の機能からなる。 ・変換 Sassで書かれたスタイルシートを CSSCSSに変換したり、CoffeeScriptのスクリプトをJavaScriptに変換する ・圧縮…

railsでバリデーション時にエラーを起こした入力欄にCSSを適用する方法

railsでバリデーションに引っかかった時は、エラーを起こした入力欄は、classがfield_with_errorsのdivタグで囲まれる。 CSSでdiv.field_with_errorsにデザインを記述すれば、エラーを起こした入力欄に色をつけることができる。 div.field_with_errors { bac…

railsで削除フラグを使いレコードを残しておく方法

destroyメソッドはSQLのDELETE文を実行して、テーブルからレコードを完全に消してしまう。 通常はこれでよいが、レコードを残したまま削除「状態」にしておきたいケースもある。 例 ・レコードの記録を残しておきたい時 ・退会させたユーザーを復活させたい…

RailsのCSRF対策

CSRFはクロス・サイト・リクエスト・フォージェリの略で、ウェブサイトへの攻撃手段の1つ。攻撃対象のウェブサイトに送信を行うフォームやリンクなどを別のサイトに用意し、ログイン中のユーザーにクリックさせる仕掛け。 勝手にブログの投稿を行わせたり、…

Railsでリソースベースのルーティングにアクションを追加する方法

アクションを追加するには、resourcesメソッドにブロックを渡し、ブロックの中で「HTTPメソッドを表すメソッド アクション名」を記述する。 その際、会員一覧のようにリソースの集合を表すアクションは、collectionメソッドのブロックで囲む。 会員の状態変…

githubとbitcuhetの違い。

プログラミングを単独でするなら、Bitbucketの方がいいね。なぜなら、単独で使うなら無料で利用できるから。 GitHubとBitbucket GitHubとBitbucketは、現時点でのGitリポジトリの2大人気サイトです。両者のサービスは非常に似通っています。どちらも、Gitリ…

modelで次、前ボタンの実装方法

単純に考えると、id+1もしくはid-1で実装できる。 class Video < ActiveRecord::Base def next Video.find(id+1) end def prev Video.find(id-1) end end しかし、この実装方法だと問題が生じる。 idが1,2,3,4,5,6が存在して、途中で例えばid=4を削除したと…

動画配信なんてyoutubeでいいじゃんと思っていたらwistiaは一味違かった

youtubeも素晴らしいサービス。 wistiaでも一味違った。 リードを獲得するため、メールアドレスを入力してくれた人だけに動画を見せてあげる。 誰(セッション)がどの動画をどれぐらい見たのかをトラッキングする。 HubSpot、Marketo、MailChimpなどマーケ…

bootstrapだけじゃなかった。「materializecss」ってサービスもあったのね。

materializecss.com bootstrapだけかと思っていたら、かなり似ているサービスがあった。 javascriptのコードも埋め込まないといけないようで、少し手間な気がする。。

railsのエラーメッセージの順番

is not a numberやcan't be blankなどのエラーメッセージの順番は、バリデーションを実行した順番になる。 これはモデルクラスの中でvalidatesメソッドやvalidateメソッドを並べた順番になる。 フォームの入力欄の並びと同じ順でエラーを表示したいときは、v…

railsのエラーメッセージのカスタマイズ

日本語化 gemパッケージrails-i18nを使う bundle install後はサーバー再起動すること エラーオブジェクトのaddメソッドの第2引数は、acceptedやblankなどのエラー名をシンボルで指定できる。 モデルのエラーオブジェクトはerrorsメソッドで取り出せる。 エ…

buildはすごく便利

例えばtweetするときに、tweetしたuserと関連付けたい。 まずはtweetモデルにuser_idカラムを追加して、どのuserの投稿か判別するようにする。 さらに、モデル間のアソシエーションをする。 tweetを投稿するviewのformからuser_idを選択もしくは、hidden_fie…

作成日時をshowページのリンクにする方法

作成日時をshowページのリンクにする方法。 ""の中に式展開する。''だと式展開にならないので注意。 created_atゲッターでインスタンスの作成時間を取得する。 strftimeメソッドで時間を取得できる。 引数で表示方法を変えることができる。 <%= link_to "#{@…

railsで独自のバリデーションメソッドを実装する

画像ファイルのアップロードのバリデーションを独自で定義してみた。 定義したのはcheck_imageメソッド。名前は任意で構わない。 if !['.jpg', '.png', '.gif'].include?ではjpg,png,gifファイルだったら、エラーにする。 errors.addでerrors連想配列にimage…

deviseでエラーメッセージを表示させる方法

deviseはフラッシュでエラーメッセージを表示させるので、以下のコードでエラーメッセージを表示させることができる。 <% if notice %> <p class="alert alert-notice"><%= notice %></p> <% end %> <% if alert %> <p class="alert alert-error"><%= alert %></p> <% end %> もしくは以下のコードをviewに追加するだけでもよい f…

add_indexにnameをつける方法

indexにnameをつけたい場合はnameオプションでindex名を指定する。 add_index :favorites, [:tweet_id, :user_id], unique: true, name: 'TWEET_ID_USER_ID_UNIQUE' 例2 remove_index :members, name: 'name_index'

mysqlでデータを縦に表示する方法

カラムが増えると改行されて見づらくなる。それをたてに表示する方法。 select * from bank_accounts \G; \Gをつける

小さな喜びを大切に

プログラミングをはじめて半年。 まだまだ世に出ているアプリのような、大そうなものは作ることはできない。 ネットで公開されている誰かのように、独学で爆速で成長して、独自のウェブサービスを公開できているわけでもない。 そんなすごい人たちと比較する…

安くおしゃれになる方法。

GU

nikkan-spa.jp これいいな。春からこれでいこう。

railsでnewページをmodalで表示させる方法

参考にしたサイト。 Rails 4 submit modal form via AJAX and render JS response as table row - Eric London's Blog このサイトの通りに作成したら、本当にnewページをbootstrapのmodalで表示することができた。 なんでこの結果になるのかコードを読み込ん…

日中仕事でその後はずっとプログラミング

8月にスパルタキャンプに参加してから、日中仕事をして、その後はプログラミングの生活をずっと送ってきている。 仕事の後のプログラミングはけっこう大変。楽しいけれど、仕事で疲れている中、頭を使うプログラミング。土日もどっぷりプログラミングしてい…

RailsのMVC

1ブラウザは/usersというURLへのリクエストを発行する。 2Railsは/usersをUsersコントローラ内のindexアクションに割り当てる (ルーティング)。 indexアクションはUserモデルに「すべてのユーザーを取り出せ」と指示する (User.all)。 Userモデルはすべての…

deviseでログイン情報を記録するチェックボックスを設置する方法

stack over flowより 6 down vote favorite I'm making a Rails App. I'd like to implement a check box 'remember me' for users to skip enter password from next time with using Devise:rememberable.but I can't figure out how to implement. if you…