show create table
テーブルの定義を調べる
show create table
undefined method ` ' for がエラーででた場合
全角スペースが半角スペースの代わりに利用されているため、エラーがでている場合がある。
itermでcontrol+rでコマンド履歴を検索する設定方法
このコマンドを打った後に、
brew install peco
.zshrc以下に下記を追記する
function peco-select-history() { local tac if which tac > /dev/null; then tac="tac" else tac="tail -r" fi BUFFER=$(\history -n 1 | eval $tac | awk '!a[$0]++' | peco --query "$LBUFFER") CURSOR=$#BUFFER zle clear-screen } zle -N peco-select-history bindkey '^r' peco-select-history
コマンドUTF8変換
find . -type f -print0 | xargs -0 nkf --overwrite -w -Lu
itermの設定
https://github.com/robbyrussell/oh-my-zsh
Basic Installation
Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either curl or wget.
via curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
「Rails をはじめよう」をはじめる (2)
アプリケーションの実装と実行
config/routes.rbで articleリソース を宣言する
Rails.application.routes.draw do resources :articles root 'welcome#index' end
Railsは「articles」というリソース名から単数形の「article」を推測し、両者をその意味にそって使い分けているという点です。prefix列で単一の項目には単数形のarticle、複数項目を扱う場合には複数形のarticlesが使われているという具合です。
・・・articleとついているものを呼び出してくれているようです
➜ blog bin/rails routes Ignoring byebug-9.0.6 because its extensions are not built. Try: gem pristine byebug --version 9.0.6 Ignoring debug_inspector-0.0.2 because its extensions are not built. Try: gem pristine debug_inspector --version 0.0.2 Prefix Verb URI Pattern Controller#Action articles GET /articles(.:format) articles#index POST /articles(.:format) articles#create new_article GET /articles/new(.:format) articles#new edit_article GET /articles/:id/edit(.:format) articles#edit article GET /articles/:id(.:format) articles#show PATCH /articles/:id(.:format) articles#update PUT /articles/:id(.:format) articles#update DELETE /articles/:id(.:format) articles#destroy root GET / welcome#index
土台を設置
新規記事を作成するための場所がアプリケーション内に必要
ルーティングは既に定義されているので、リクエストはアプリケーションの/articles/newに送られます。ブラウザでhttp://localhost:3000/articles/newを開くと、今はルーティングエラーが表示されます。
このエラーが発生したのは、ルーティングで指定された先に、リクエストを処理するように定義されたコントローラが見つからない ではコントローラーを作成してみる
ArticlesControllerを作成
rails g controller articles
今度は、ArticlesControllerコントローラにnewアクションが見つからないというエラーが発生する コントローラ内でメソッドを定義する ArticlesControllerクラスの内側に以下のようにnewメソッドを作成
class ArticlesController < ApplicationController def new end end
articles/newというテンプレートをArticlesControllerは探しにいく
ブログアプリケーションのようなシンプルなRailsアプリケーションでは、テンプレートの置き場所は1箇所ですが、複雑なアプリケーションではさまざまな場所にテンプレートが置かれることもあります。
テンプレートをapp/views/articles/new.html.erbに置くのが最もシンプル
app/views/articles/new.html.erb →拡張子の意味 1つ目の拡張子はテンプレートの フォーマット 2つ目の拡張子は使用されるハンドラー
app/views/articles/new.html.erbを作成して、その中に以下のように記入
<h1>New Article</h1>
最初のフォーム
フォームを始めるためには、form builder を使用する Railsにはform_forというヘルパーメソッドがあり、主にこれを使用してフォームを作成する
app/views/articles/new.html.erbを書き換える
#このフォームを識別するためのオブジェクトを渡す こでは:articleというシンボル <%= form_for :article do |f| %> # このメソッドのブロックの内側はFormBuilderオブジェクトを置きます(fで表すのが通例です) #タイトル <p> <%= f.label :title %><br> <%= f.text_field :title %> </p> #記事本文 <p> <%= f.label :text %><br> <%= f.text_area :text %> </p> #fオブジェクトに対してsubmitを実行すると、フォームの送信ボタンが作成されます。 <p> <%= f.submit %> </p> <% end %>
小さいブログを新規作成するフォームができた
記入したブログの送信先を設定する app/views/articles/new.html.erbをエディタで開き、form_forの行を以下のように変更
<%= form_for :article, url: articles_path do |f| %>
bin/rails routesの結果
➜ blog bin/rails routes Ignoring byebug-9.0.6 because its extensions are not built. Try: gem pristine byebug --version 9.0.6 Ignoring debug_inspector-0.0.2 because its extensions are not built. Try: gem pristine debug_inspector --version 0.0.2 Prefix Verb URI Pattern Controller#Action articles GET /articles(.:format) articles#index POST /articles(.:format) articles#create new_article GET /articles/new(.:format) articles#new edit_article GET /articles/:id/edit(.:format) articles#edit article GET /articles/:id(.:format) articles#show PATCH /articles/:id(.:format) articles#update PUT /articles/:id(.:format) articles#update DELETE /articles/:id(.:format) articles#destroy root GET / welcome#index
articles_pathヘルパーは、articlesという接頭語に関連付けられているURIパターンをフォームの送信先とするようRailsに指示
5.3 記事を作成する
ArticlesControllerコントローラ内にcreateアクションを作成し、フォームが動作するようにする app/controllers/articles_controller.rbファイル内のArticlesControllerクラス内のnewアクションの下にcreateアクションを追加
class ArticlesController < ApplicationController def new end def create end end
実際のパラメータがどのようになっているかを確認するために、createアクションに以下の変更を加える
def create render plain: params[:article].inspect end
http://localhost:3000/articlesにはハッシュが表示された
<ActionController::Parameters {"title"=>"tetet", "text"=>"tetet"} permitted: false>