app/views/devise/sessions/new.html.erb以下のviewにusername用のフォームを追加します。app/views/devise/registrations/new.html.erbapp/views/devise/registrations/edit.html.erb先ほど登録したuserはusernameにデータが入っていないので一度DBをリセットします。以下のコマンドを実行します。http://localhost:3000/users/sign_upにアクセスするとusernameも登録できるようになっていてusernameとpasswordでログインできるようになっています。次にURLカラムを追加します。以下のコマンドを実行します。db/migrate/20160920090632_add_url_to_users.rb先ほどと同様に以下のviewにurl用のフォームを追加します。app/views/devise/registrations/new.html.erbapp/views/devise/registrations/edit.html.erb先ほど登録したuserはurlを持っていないので一度DBをリセットします。以下のコマンドを実行します。===========================これでログイン機能はOKです。以下のコマンドを実行します。app/assets/stylesheets/scaffolds.scssユーザと投稿は1対多の関係なのでrelationをuser.rbに追記します。ユーザが削除されたときにそのユーザの投稿も削除してほしいのでdependent属性も設定します。:destroy以下のコマンドを実行します。=============================投稿と投稿者が結びつくようにフォームを修正します。%></div>まだ色々な微調整は済んでいませんが、基本的な投稿機能は完成です。(書くのが面倒くさくなりました。誠に申し訳ございません。次に検索機能を実装します。今後も使っていくようなアプリであれば検索機能用のgemであるransackを使うのですが、今回は簡単な検索のみなのでgemを使わずに実装しようと思います。scopeを実装します。post.rbとuser.rbに追記してください。投稿内容に’home'が含まれる投稿を取得することができます。ユーザー名に’foo’が含まれるユーザーの投稿を取得することができます。この記述には脆弱性が存在します。詳しくは脆弱性検証編を書いてあります。次は検索機能で用いるラジオボタン用の定数を設定します。post.rbに追記します。次にcontrollerを記述します。今回の検索機能はsearch_typeで検索する対象(postのbody,userのusername)を決定し、searchが検索ワードという実装にしました。posts_controller.rbのindexメソッドを次のように変更します。endendPost::POST_SEARCH.to_sとなっているのはGETメソッドから得られるパラメータは数値も文字列に変換されているためです。次にviewを記述します。posts/index.html.erbに追記します。%>これで検索機能は完成です。使ってないメソッド、ルーティング、ビューを削除タイムゾーンを東京に変更などなどを書き換えると脆弱かもしれないSNSの完成です。次は脆弱性検証編です。再考DB共有しているRailsアプリケーションのテストを書くときに気をつけること新卒ISUCONで優勝しました月別アーカイブ参加グループプログラミングはてなブログをはじめよう!euglena1215さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。