お待たせしました!

ついに、SwiftとRubyが力を合わせる時が来ました!

今回の内容を実際にやってみたい方は、過去の記事の工程を行ってください。

#01 PHPで通信できるところまで

#02 Rails環境構築


 

STEP1:

ココでは説明しませんが、Railsはアクセスがあってから結果を表示するまでに3つのことをしてます(大きく分けて)。

そこら辺を予習してからやると理解しやすいかもしれません。

 

まずは、コントローラを作成します。

私は大文字を含みましたが、後々面倒なことになるので、おすすめしません。

(やっちゃいけないことだったりする??)

cd アプリのルート

rails generate controller コントローラ名

 

次に、処理部分を記述します。

以下の階層にあるrbファイルを使います。ファイル名にはコントローラ名が含まれるのでわかると思います。

アプリのルート/app/controllers

キーになるのはparamsです。

あと、renderに関しても勉強しておくと良いと思います。

PHPだけでなくRailsも日本語のリファレンスがあるとは・・・

親切すぎて涙が出そうです。

 

これだけでは、実行してもRailsちゃんのページしか表示されません。

予習した人はわかりますよね??

以下の階層にあるrbファイルを使います。

アプリのルート/config/routes.rb

なんて親切なんだ!

書き方がいっぱい書かれてるじゃないか!!

とりあえず、今回は上の方にあるやり方を採用してみました。

root ‘コントローラ名#メソッド名

大文字でコントローラを作るとココで困ります。

結論としては、controllersディレクトリ以下のrbファイル名に含まれる表記です。

 

Railsサーバを起動させたら、PCのブラウザからアクセスしてみましょう。

http://192.168.22.2:3000/?title=Hello!!

左上に文字は表示されましたか?

ちなみに、URLに情報を含めて呼び出す方法については、このサイトを参考にしました。

あとはアプリ側の修正だけなのですが、2つほど疑問が。

・renderで表示させた文字は、PHPでprintと出力した時のようにアプリ側で取得可能なのか?

・もしrenderが使えるなら、複数の文字を出力する書き方はどうしたらいい?


 

STEP2:

とりあえず、やってみましょう!

正解か不正解かはコンピュータが答えてくれるはずです。

 

#1で作成したアプリを引き続き使います。

ラベル・テキストフィールド・ボタンを配置したViewを追加して、処理を記述します。

処理に関しては、アクセスするアドレスを変更するだけです。

ドキドキしながら実行すると・・・

Simulator Screen Shot 2016.03.04 1.27.45

動いた!ということで、疑問の一つが解決しました。

えーと、まだ2つめが解決してないのでテキストフィールドの1つ目しか送信してません。

 

文字を出力する処理を書いたところにコメントでAkkeyLabという文字列を出力する文がありますよね?

これからも分かるように、文字列を渡してやれば表示できるんです!

ということは・・・

Swift:

let data = 0; NSLog(“データ値は\(data)”)

Ruby:

data = 0; puts “データ値は#{data}”

こんな感じで、文字列中に数値などを埋め込む方法を使えばできるはず!

 

ということで、私なりの答えを書いていきます。

まず、Rails側は以下のとおりです。

アプリのルート/app/controllers

次にiOSアプリ側は以下のとおりです。

ただし、PHP側の処理とデザインは省略してます。

最後に実行結果です!

PHPで行った動作をRailsでも行うことができました!

Simulator Screen Shot 2016.03.04 2.50.35

次回は、実用化を目的にJsonを扱ってみたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*