*ブログに戻る →ここ です。
参考サイトは下記にリンクを張っています。

Rubyの学習 free216
これは「Scaffold」メソッドというの?
プログラムが自動生成されてSQLiteにも接続される
しかしプログラムの中身は難解で理解不能、最後にこういう意味だろうみたいなメモを残した
ウェブアプリとはこういう事なんですね、ということでながします。

↓Rubyのプログラムを実行すると以下のように表示される。

ブラウザからアクセス

Listing kitfriends

Kit name Kit address 定近充始 広島県**** Show Edit Destroy 定近次郎 広島県某所1丁目1-1 Show Edit Destroy 定近三郎 広島県某所2丁目2-2 Show Edit Destroy 定近十二郎 広島県某所4丁目4-4 Show Edit Destroy 定近五郎 広島県某所5丁目 Show Edit Destroy New Kitfriend

Wednesday,November,27,2013

プログラムの表示

free214.html free215.html modeisは間違いで modelsが正しい モデル名でアクセス、モデル名でテーブルが作られる cd C:\SadaData\rails 「kittakapersonal」というアプリケーションを作成 C:\SadaData\rails>rails new kittakapersonal Scaffold機能を使う cd C:\SadaData\rails\kittakapersonal C:\SadaData\rails\kittakapersonal> <!-- 注、モデル名はマイグレーションスクリプトを実行するとテーブルが作られテーブル名になる ↓ 「kit_name」カラムと「kit_address」カラムを持つ「kitfriend」モデルを作成します。 rails generate scaffold モデル名 rails generate scaffold モデル名 フィールド名1:データ型1 ... --> ↓○○ここに自動生成の名前があるね ○↓モデル ↓カラム ↓カラム rails generate scaffold kitfriend kit_name:string kit_address:string C:\SadaData\rails\kittakapersonal>rails generate scaffold kitfriend kit_name:string kit_address:string app/models/kitfriend.rb ←モデル class Kitfriend < ActiveRecord::Base end db/migrate/20131127004955_create_kitfriends.rb ←モデル 勝手に「s」が付く さくらエディタで開いて確認 class CreateKitfriends < ActiveRecord::Migration ←モデル 勝手に「s」が付く def change create_table :kitfriends do |t| ←モデル 勝手に「s」が付く t.string :kit_name t.string :kit_address t.timestamps end end end マイグレーションスクリプトの実行までは行なわれていませんので、 別途スクリプトを実行しテーブルを作成する必要があります。 マイグレーションスクリプトを実行(順番的に後でいい、後にも記載した) C:\SadaData\rails\kittakapersonal>rake db:migrate スクリプトを実行するとデータベースの中にテーブルが作成される == CreateKitfriends: migrating -- create_table(:kitfriends) ←このテーブル名変えたい○○注、モデル名がテーブル名になる ○○注、モデル名がテーブル名になる 勝手に「s」がつく app/controllers/kitfriends_controller.rb ←モデル 勝手に「s」が付く さくらエディタひらく あまりに複雑でわからない  たぶんこんな意味だろうとかの感想もいっしょに一番最後に載せます <!-- おさらい C:\SadaData\rails\kittakashop\app\controllers\kittakashoplist_controller.rb # coding: utf-8 ↑コントローラー名 class BooklistController < ApplicationController def bykittakashop2019 @titles = Title.all end --> 「_form.html.erb」は他のビューから読み込まれるもので、それ以外のビューは各アクションに対応したビュー app/views/friends/_form.html.erb app/views/friends/edit.html.erb app/views/friends/index.html.erb app/views/friends/index.json.jbuilder app/views/friends/new.html.erb app/views/friends/show.html.erb app/views/friends/show.json.jbuilder --------------------------------------- app/views/friends/new.html.erb をさくらエディタで開いてみる <h1>New kitfriend</h1> <%= render 'form' %> <%= link_to 'Back', kitfriends_path %> ←モデル勝手に「」がつく ---------------------------------------- app/views/friends/edit.html.erb をさくらエディタで開いてみる <h1>Editing kitfriend</h1> <%= render 'form' %> <%= link_to 'Show', @kitfriend %> | ←モデル <%= link_to 'Back', kitfriends_path %> ←モデル ----------------------------------------- データベースの作成 ←順番的にdbを作成してマイクレーションがいいみたい C:\SadaData\rails\kittakapersonal>rake db:create マイグレーションスクリプトを実行(SQLiteのテーブルを作成するという意味) C:\SadaData\rails\kittakapersonal>rake db:migrate アプリケーションの起動 C:\SadaData\rails\kittakapersonal>rails server ブラウザからURLへアクセス URL://localhost:3000/kittakafriends ERROR URL://localhost:3000/kitfriends ------------------------------------------------------------------ app/controllers/kitfriends_controller.rb ←モデル 勝手に「s」が付く =begin ↓「kitfriend」Railsならモデル名と呼び、SQLiteではテーブル名になる。 =end class KitfriendsController < ApplicationController before_action :set_kitfriend, only: [:show, :edit, :update, :destroy] # GET /kitfriends # GET /kitfriends.json def index @kitfriends = Kitfriend.all end =begin たぶんブラウザからindexメソッドが呼び出されたら、なんだかわからないけど「Kitfriend.all」の値を 変数「@kitfriends」に格納しろという指示が出ている =end # GET /kitfriends/1 # GET /kitfriends/1.json def show end # GET /kitfriends/new def new @kitfriend = Kitfriend.new end =begin neow の指示がでたら「Kitfriend.new」の値を変数「@kitfriend」に格納せよ 「.new」これはメソッドで何かの機能を実行している =end # GET /kitfriends/1/edit def edit end # POST /kitfriends # POST /kitfriends.json def create @kitfriend = Kitfriend.new(kitfriend_params) respond_to do |format| if @kitfriend.save format.html { redirect_to @kitfriend, notice: 'Kitfriend was successfully created.' } format.json { render action: 'show', status: :created, location: @kitfriend } else format.html { render action: 'new' } format.json { render json: @kitfriend.errors, status: :unprocessable_entity } end end end =begin create の指示が出たら変数「@kitfriend」に「Kitfriend.new(kitfriend_params)」の引数を入れよとの指示 「.new」これメソッドだよね 変数「@kitfriend.save」のドットの右側、これはどこのクラスのメソッドでどんな機能かわからないが、 何かの指示で変数が加工されているはず。そもそも「.save」メソッドは習っていません if と else は該当するかしないかで2つのブロック内のどちらかを行わせるという意味 「format.html」「format.json」これらのファイルはどこに存在するんだ ここらにありそうだけど無い ↓勝手に「s」が付くデーターベース名Railsならモデルとよんでいる \app\views\kitfriends\index.html.erb ブロック内の順番で何をどこでどのように指示しているのかわからない、SQLite関連かなとか =end # PATCH/PUT /kitfriends/1 # PATCH/PUT /kitfriends/1.json def update respond_to do |format| if @kitfriend.update(kitfriend_params) format.html { redirect_to @kitfriend, notice: 'Kitfriend was successfully updated.' } format.json { head :no_content } else format.html { render action: 'edit' } format.json { render json: @kitfriend.errors, status: :unprocessable_entity } end end end =begin 「update」という指示がでた場合「respond_to」の値を繰り返し「format」入れる、 変数のドット右側「.update(kitfriend_params)」これはメソッドと引数だよね if と else は該当するかしないかでブロック内の違う処理を行わせるという意味 ブロック内配置されている順番、どんな指示を出されているのかわからない =end # DELETE /kitfriends/1 # DELETE /kitfriends/1.json def destroy @kitfriend.destroy respond_to do |format| format.html { redirect_to kitfriends_url } format.json { head :no_content } end end =begin 「destroy」という指示がだされたら、 変数「@kitfriend.destroy」の右側のメソッド「.destroy」を実行するように指示が出される 「respond_to」を繰り返し「format」へ格納するように指示がだされる よく出るね、respond_to これは外からメソッドを呼び出されているのかな ファイルなのかな「format.html」「format.json」 ここらにありそうだけど無い ↓勝手に「s」が付くデーターベース名Railsならモデルとよんでいる \app\views\kitfriends\index.html.erb =end private # Use callbacks to share common setup or constraints between actions. def set_kitfriend @kitfriend = Kitfriend.find(params[:id]) end # Never trust parameters from the scary internet, only allow the white list through. def kitfriend_params params.require(:kitfriend).permit(:kit_name, :kit_address) end end =begin 「set_kitfriend」と呼び出されると 「Kitfriend.find(params[:id])」メソッドfindや引数を変数「@kitfriend」に格納するみたい ↑Railsならモデル名と呼び、SQLiteではテーブル名になる。 「kitfriend_params」これはクラスの外からメソッド呼び出すオブジェクトぽいですね 「.require」このメソッドと引数の意味がわかりません 「.permit」隣のメソッドとやたら近いな =end


*↓ 参考にしたサイトは下記
こちら です。

これは赤色の文字例です。

これは青色の文字例です。