読者です 読者をやめる 読者になる 読者になる

geekday’s diary

超絶初心者のエンジニアがいろいろなプログラミング言語に挑戦してみるブログです。

Ruby on RailsにてGETメソッドで渡されたパラメータを受け取ってみる

前回、Ruby on Railsの開発環境が整ったので、今回は一歩進んでみる。

コントローラー側でパラメータを取得したい時の話。

www.rubylife.jp

 

上記のサイトを参考に、いわゆるGETメソッドをイメージして、簡単なアクションをコントローラー側に書いてみる。

 

$ rails s でローカルサーバを立ち上げて

http://localhost:3000 が起動したことを確認し、

まずはルーティングの設定を行う。

config>routes.rb 内に以下を追記。

get 'users/show/:username' => 'users#show'

こうすることにより、

http://localhost:3000/users/show/パラメータ名(username

の形で値が渡された時に、userコントローラー内のdef show内でパラメータが受け取れるようになる。

この場合、params[:パラメータ名]でコントローラ側は、受け取れるようになるため、

@test = params[:username]

と記載しておけば変数test内に取得したパラメータの値が代入され、中身の確認もできた。

今回はGETでやったけど、POSTもそんなに変わらずできるっぽいので明日以降でテストしてみたいと思う。

 

 

ruby on Railsの開発環境をmacに入れてみた②

つづいて、

③bundler(gem)のインストール

そもそもgemとは何かという話だが、以下のサイトがわかりやすい。

tech-camp.in

ようは、ライブラリ(ここでいうログイン認証や画像アップロードなど)がgemという形で公開されており、bundlerはそれらのバージョン管理やインストールサポートをしてくれるgemということ。

qiita.com

 

というわけでbundlerをインストール

$sudo gem install bundler とコマンド入力し(El Capitanはsudoコマンドが必要)

Successfully installedと出てきて完了。

 

そしていよいよ最後の

railsのインストール

 

まずはrailsをインストールするワークスペースの作成。

mkdirで任意の場所へフォルダを作成。

cdで直下へ移動した上で、

③で入れたbundleを用いて$ bundle init コマンドを実行。

すると、ワークスペース内にGemfileというファイルが作成される。

 

ここで、Gemfile内でコメントアウトされている

gem "rails"を有効化する。

こうすることで、gemfile内にインストールしたいgemを指定できるので、

bundle install --path vendor/bundle

でインストール

 

これでようやくrailsが入りました。

だが・・一応確認として、rails -vコマンドを打ってみると・・

Rails is not currently installed on this system. To get the latest version, simply type:

$ sudo gem install rails

You can then rerun your "rails" command.

なぜだ、ファック!!

sudo 以下を実行しても何も起きない!インストールしたやんけ。。

わからずぐぐってたら、どうやらこれも例の$which rails で見たときのパスがデフォルト指定のままだったようだ。

正しいパスをexportして再度実行した結果、

Rails 5.0.2

できた・・!

ってことでmacRuby on Railsを入れることに成功しました。

railsを入れたワークスペースのファイル構成をみていると、確かにMVCが一括でできている・・。

$ rails -s でローカルサーバを簡単に立ち上げることもできた。

 

次回以降、

qiita.com

上記のサイトなんかをみながら早速作ってみようかな。

 

 

 

 

ruby on Railsの開発環境をmacに入れてみた①

備忘録程度のメモ。結構いろいろと詰まった。。

まずは以下のサイトにざっと目を通す。

(※僕のMacOSはEl Capitanだった)

qiita.com

こちらで確認し、

①Homebrew

②rbenv

③bundler(gem)

rails

の4つをインストールしていく。

 

まずは①のHomebrewをインストールするので、

ターミナルを起動し、Homebrew公式サイトにある

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

こちらをそのままコピペ。

なんかの拍子にxcodeはDL済みだったのでエラーは出ずすんなりそのまま完了。

brew doctorコマンドを入力すると、

ready to brewと出たので一安心。

 

次に②rbenvのインストール

brew install rbenvコマンドで一気にインストールし、完了。

ここまではサクサク。

 

その後、rbenv install -lをするとインストール可能なrubyのバージョンが一覧で出てくる。

参考文献の多さという観点からちょっと迷ったが、最新版の2.4.0を落とすことにし、

rbenv install 2.4.0コマンドを入力。

そしてその後初めての壁が。

ruby -v でバージョンをみると、2.4.0を入れたのにもかかわらずmacのデフォルトの2.0.0が出てくる。なぜ。。

どうやら、rbenv globalにて、デフォルトで使用するrubyのバージョン設定変更ができていなかった模様。

で、ぐぐると以下のサイトを発見。

qiita.com

つまり、which rubyと入力してみて出てきたところのパスが、

/usr/bin/ruby とデフォルトのところのままの設定でしたね、というお話。

よって、

qiita.com

ここなんかも参考にしつつ、(~/.rbenv/のなかにbinはない。。

export PATH="$HOME/.rbenv/shims:$PATH"

でパスを正しいものに変更。

ターミナル再起動 or sourceコマンドでリロード的なことをやらないと変更が反映されないことに気づくのが遅くなったこともあり苦労しつつ、

ruby -v で2.4.0が! やりましたー。

 

続く。 

 

 

 

 

swiftの変数についてまとめてみた③

定数・変数において、データ型が違うもの同士を一括で出力ができないので、以下のようにキャストをして出力をする。

let message: String = "歳の誕生日!"
let age: Int = 20

//ageをString型にキャストして出力
print(String(age) + message)

let price: Int = 300
let taxRate: Double = 0.08

// priceをDouble型にキャストして出力
print(Double(price)*taxRate)

 やや手間なのと、いまさらだけど「S」tring.「D」oubleと大文字にしないとエラーになるので注意。

 

swiftの変数についてまとめてみた②

// String型の定数nameに"呉田厚作"を代入
let name:String = "呉田厚作"

// 「私の名前は呉田厚作です」となるように出力
print("私の名前は\(name)です")

 定数・変数は\(変数)で中身を呼び出せる。

swiftの変数についてまとめてみた

// String型の定数messageに"Hello"を代入する
let message: String = "Hello"

// Double型の定数rateに0.07を代入してください
let rate: Double = 0.07

// 定数rateを出力する。
print(rate)

 swiftで定数に代入するには、まずはデータ型(string,int,double)を指定し、

let 変数名:データ型= 代入したいもの

であらわす。ちょっとJavaチックですね。

ちなみに、変数の場合はlet→varになる。

定数=変化しないもの

変数=変化する(再代入など)もの

という切り分けができる。

rubyでクラスを生成、呼び出すまで。

#Carクラスの定義

class Car

# chatメソッドを定義する
def chat
 puts "私はいえです。名前はまだありません"
 end
end

#Carクラスを呼び出す

my_car = Car.new

# my_carに対してchatメソッドを呼び出す
my_car.chat

 rubyでのクラスの生成方法は上記。

class 先頭大文字

#処理

end

 

 ちなみに、メソッドの定義は

def メソッド名(引数)

#処理

end