render メソッド renderメソッドは、部分テンプレートを呼び出す際に利用するメソッド partial オプション renderメソッドで使用できるオプション。 partialというオプションを付けることで、明示的に部分テンプレート名を指定し、部分テンプレートを表示す…

#ユーザーがログインしている、かつログインしているユーザーと投稿したユーザーが一致している if user_signed_in? && current_user.id == @post.user_id <% if user_signed_in? && current_user.id == @post.user_id %>

#ユーザーがログインしている、かつログインしているユーザーと投稿したユーザーが一致している if user_signed_in? && current_user.id == @post.user_id <% if user_signed_in? && current_user.id == @post.user_id %>

アソシエーションによるテーブルの関係 アソシエーションによりテーブルを紐付けると userテーブル postsテーブル user_id ⇨ id nickname 1 ⇨ 1 1さん 2 ⇨ 2 2さん 3 ↘ 2 2さん 「post.user.nickname」でpostsテーブルのuser_idと紐付いているusersテーブル…

アソシエーションによってモデル同士を紐付けたことにより 「post.user.nickname」みたいなのでpostsテーブルのuser_idと紐付いているusersテーブルのレコードからnicknameを取得することができる そうすることによってviewに「nickname」が表示されるように…

Rails g migration AddNicknameToUsers nickname:string ユーザーテーブルにニックネームカラムをstring型で追加してください Rails db:migrate データベースに適用 mysqlのuserテーブル見たら一番右端にnicknameカラムができてる

def post_params params.require(:post).permit(:title, :content).merge(user_id: current_user.id) end mergeメソッドを利用して、postというハッシュの中に、user_idというキーを結合して、user_idをpostsテーブルに登録できるようになる user_idは、ログ…

userから見ると一つのuserはいっぱいpost(記事)を持てる。 model/user.rbは has_many :postsとなる postからみると一つのpost(記事)は一つのuserしか持てない。誰が投稿したかがわかる model/post.rbは belongs_to :user

薄々気づいてはいたんだが、クラス名のけつにbtnってつけたらボタンになる。恥ずかしい 新規投稿・投稿編集でform_withは同じコード、部分テンプレートが使える 渡されるインスタンスの中身(@postは空なのか、中身にすでに情報が入っているのか)で、行き先…

form_withを使ったときはストロングパラメータの書き方が少し変わる private def post_params params.require(:post).permit(:title, :content) end require(:モデル名)の記載が増える

prefixとは prefixとはuri patternを変数化したもの。 prefix名に_pathをつけることによってパスとして認識される 例えばrails routesして Prefixがrootとかnew_postだったら viewにroot_pathとかnew_post_pathとつければ遷移する <%= link_to '新規投稿', n…

インスタンス変数に格納 @poppo = Poppo.find(1) Poppoテーブルのid1をインスタンス変数@poppoへ格納 <h3><%= @poppo %></h3> このままだとレコードを取得してしまうのでカラムを指定する <h3><%= @poppo.message %></h3> モデル継承継承 モデルの主な役割 1.コマンドを使用…

インスタンス変数に格納 @poppo = Poppo.find(1) Poppoテーブルのid1をインスタンス変数@poppoへ格納 <h3><%= @poppo %></h3> このままだとレコードを取得してしまうのでカラムを指定する <h3><%= @poppo.message %></h3> モデル継承継承 モデルの主な役割 1.コマンドを使用…

重要なコマンドや用語 rails g controllerコマンド モデルを利用したデータ操作 ビューへの変数受け渡し レスポンスとなるビューファイルを決める コントローラの主な役割 1.データに対して処理を実行する 2.処理を行ったデータをフロントサイド(views…

Route.rb 書き方 [httpメソッド] ‘URIパターン’, to: ‘[コントローラー名]#[アクション名]’ Get ‘posts’, to: ‘posts#index’ URIパターン;パスと呼ばれる HTTPメソッドとはリクエストの大まかな種類を示す 例えばgetは扱いたいデータを表示するだけメソッド…

rails new するときに大事なこと2つ ・バージョン指定 ・データベース指定 Rails _5.2.3_ new myfirstapp -d mysql ↑バージョン ↑データベースにmysqlを指定 % mysql -u root Mysqlに接続できる % show databases; データベース一覧表示

①リクエスト def create Post.create(post_params)②プライベートメソッドの呼び出し end private def post_params params.permit(:content)③特定のキーを受け取るように制限 end paramsの中のcontentだけを受け取りを許可permitするよーってことになる permi…

コントローラーの書き方むずい ~~controller.rb ~~ def create Post.create(content: params[:content]) end (content: ↑カラム名 params[:content] ↑paramsとして送られてきたデータ

params コントローラーにたどり着くデータが格納されているハッシュオブジェクトのようなものです。フォームで送信されたデータもparamsの中に格納されてコントローラーで受け取られます。 フォームより送られたデータの場合、inputタグのnameに記載されたキ…

railsのフォーム <h1>新規投稿ページ</h1> <form action="/main" method="post"> <input type="text" name="content"> <input type="submit" value="投稿する"> </form> type 用途例 type="text" 1行テキストボックス type="password" パスワード入力ボックス(入力したテキストがアスタリスクなどに置き換えて表示される) type="checkbox" チェックボックス(複数選択可能) type="radio"…

routes.rb Rails.application.routes.draw do get 'posts', to: 'posts#index' get 'posts/new', to: 'posts#new' end 書いてから $ rails routes Prefix Verb URI Pattern Controller#Action posts GET /posts(.:format) posts#index posts_new GET /posts/…

routes.rb Rails.application.routes.draw do get 'posts', to: 'posts#index' get 'posts/new', to: 'posts#new' end 書いてから $ rails routes Prefix Verb URI Pattern Controller#Action posts GET /posts(.:format) posts#index posts_new GET /posts/…

HTTPメソッド どのような時に用いられるリクエストか GET ページを表示する操作のみを行う時 POST データを登録する操作をする時 PUT データを変更する操作をする時 DELETE データを削除する操作を行う時 アクション名 どのような時に動くか index 一覧表示…

erb注意点 <h1>トップページ</h1> <% @posts.each do |post| %> <%= post.content %> <%= post.created_at %> <% end %> %=タグは表示するときに使う %タグは表示しないときに使う eachの処理自体は表示しないのでeachの行は%タグでおk

Posts_controller.rb Class — def index @post = Post.find(1) end End Index.html.erb <%= @post.content %> contentはレコード名 変数@postの中(idの1)のcontentカラムのデータ表示してください Index.html.erb <%= @post.content %> <%= @post.created_a…

create データベースに登録するアクション @reshipe = Reshipe.new(reshipe_params) 空のモデルを@reshipeに代入 @resipe.user_id = current_user_id 誰が投稿したのか、user_idのカラムに今ログインしてる人のidつまり誰が投稿したのかが保持される @resh…

create データベースに登録するアクション @reshipe = Reshipe.new(reshipe_params) 空のモデルを@reshipeに代入 @resipe.user_id = current_user_id 誰が投稿したのか、user_idのカラムに今ログインしてる人のidつまり誰が投稿したのかが保持される @resh…

エラー ▼PostgresSQL のerror Postgres PG::ConnectionBad: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? $ brew services start postgr…

▼エラー ■ Sprockets::Rails::Helper::AssetNotFound in Top#index Showing /Users/user/Documents/akito's_portfolio/app/views/top/index.html.haml where line #322 raised: The asset "app/assets/images/pic/profile/2801700_m.jpg" is not present in …

シンデレラルール発動! また明日更新します!