質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

0回答

933閲覧

ruby on railsで作成したwebアプリをサーバーサイド連携してモバイルアプリ等に展開したい場合の設計の注意点について

widget11

総合スコア221

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

1クリップ

投稿2019/03/14 19:41

railsでは5系からAPIモードなるviewを作成しないウェブサーバー専用のプロジェクトが出来るようになったらしく、そのリファレンスは比較的に多いのですが既存のwebアプリをサーバーサイド連携させたい場合のリファレンスが少ない為質問します。
当方モバイル開発はズブの素人です。

サーバーサイド連携を行うに辺り調べてみると、通常htmlに返す値をjson等のデータフォーマットにレンダリングするのがベターな様なのですが。。。
まず

①既存のアプリのコントローラーに条件分岐の様な形でjsonをレンダリングしてあげるべきなのか、もしくはAPI用のコントローラーを作成してあげるべきなのかが分からないです。

railsでscaffoldすると以下のようなコードがコントローラーに生成されると思います

def create #中略 respond_to do |format| if @user.save format.html { redirect_to @user, notice: 'User was successfully created.' } format.json { render :show, status: :created, location: @user } else format.html { render :new } format.json { render json: @user.errors, status: :unprocessable_entity } end end end

クライアントからの要求に応じてhtmlを返したり、jsonを返したりというのをコントローラーで書けるようですがこのように設計すべきか、もしくは同一の内容のjsonを返すAPI用コントローラーを作成すべきかどうかが分かりません。

②viewにロジックを書き込むのはやめた方がいいのか分からないです

<% if user_signed_in? %> <%= render 'layouts/login_user_header' %> <% else %>

例えばdeviseを使う際にこのようにメソッドがviewに書かれているコードは多く見受けられますが、当然jsonを返してあげるアクションを定義するとなると、viewにかかれているロジックはモバイル開発する際に使えなくなると思います。そのためモバイル開発する際の開発コストを下げる意味でもやはりロジックをviewに書き込むのはやめたほうがいいのでしょうか?
その場合、表示用ロジックを書き込むviewmodelやプレゼンテーションクラスを作成(decoratorデザインパターン)を採用するのは有用なパターンでしょうか?(あまりしっかり仕様を確認していないのですが DraperやActive Decoratorのようなライブラリを使うのは吉でしょうか?)

③曖昧な質問で申し訳ございませんが、その他注意点等はございますでしょうか?

質問が多くなってしまい申し訳ございませんが、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問